Не могу понять что не так!?
class UserContext: DbContext
{
public UserContext() : base("DBConnection") { }
public DbSet<Question> Questions { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Question>().HasMany(p => p.Towns);
}
}
class Question
{
public int Id { get; set; }
public virtual ICollection<string> Towns { get; set; }
public Question()
{
Towns = new List<string>();
}
}
class Program
{
static void Main(string[] args)
{
using (UserContext db = new UserContext())
{
var q1 = new Question();
for (int i = 0; i < 4; i++)
{
Console.Write($"Town {i+1}: ");
q1.Towns.Add(Console.ReadLine());
}
db.Set<Question>().Add(q1);
db.SaveChanges();
}
}
Вы пытаете использовать в качестве свойства навигации просто тип string потому EF и ругается что свойство не декларировано. Для решения данной задачи логичным и правильным с точки зрения архитектуры будет создать отдельный тип для городов и уже работать с ним как с отдельно таблицей.
Пример на основе вашего кода:
namespace Question770117
{
using System;
using System.Data.Entity;
using System.Linq;
public class UserContext : DbContext
{
public DbSet<Question> Questions { get; set; }
public UserContext() : base("name=UserContext")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Question>().HasMany(p => p.Towns);
}
}
public class Question
{
public int Id { get; set; }
public virtual ICollection<Town> Towns { get; set; }
public Question()
{
Towns = new List<Town>();
}
}
public class Town
{
public int Id { get; set; }
public string Name { get; set; }
}
}
И пример использования:
static void Main(string[] args)
{
using (UserContext db = new UserContext())
{
var q1 = new Question();
for (int i = 0; i < 4; i++)
{
Console.Write($"Town {i + 1}: ");
q1.Towns.Add(new Town(){Name = Console.ReadLine() });
}
db.Questions.Add(q1);
db.SaveChanges();
}
ReadAllTowns();
}
/// <summary>
/// Пример считывания городов из БД
/// </summary>
private static void ReadAllTowns()
{
Console.Write(Environment.NewLine);
using (UserContext db = new UserContext())
{
var questions = db.Questions.ToList();
foreach (var question in questions)
{
Console.Write($"Question {question.Id}:{Environment.NewLine}");
foreach (var town in question.Towns)
{
Console.Write($"\tTown {town.Id}: {town.Name}{Environment.NewLine}");
}
}
}
Console.ReadKey();
}
Ну и напоследок скрин:
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Реализован глобальный хук и назначение функций на клавиши, нужно отменять действие "назад" и "вперед"
Вопрос следующийЕсть 2 таблицы: МАРШРУТ: Достопримечательность:
Не могу разобраться как изменять IP в запросах в чарльзеПопробую объяснить - есть софт на C# использую dotnetbrowser