/ / Entity Framework Тип и свойства, които не се картографират (грешки 11007 и 11009) - c #, .net, entity-framework, entity-framework-6, ef-model-first

Entity Framework Тип и свойства, които не се картографират (грешки 11007 и 11009) - c #, .net, entity-framework, entity-framework-6, ef-model-first

Имам проблеми с модела първо в рамката на обектите 6, .net 4.7, визуално студио 2017 ...

Опитвам се да добавя много към 0 ...1 с чужд ключ между две таблици и когато се опитвам да потвърдя модела, получавам грешка, като казвам, че полето с чужди ключове в таблицата не е картографирано. Освен това, дори не мога да добавям нови образувания към модела, тъй като получавам грешка при валидирането, като казвам, че предприятието не е картографирано. Какво е направил, за да се влезе в това състояние? Едва го използвах, за да направя нищо.

Какво да направя, за да го направя, за да правя неща без тези грешки? Знам, че е така, защото не е картографирал нещата, но трябва да направи това автоматично. Цялото нещо изглежда небрежно, като се има предвид варианта 6.

Трябва ли първо да превключа на база данни?

Благодаря ти.

Отговори:

0 за отговор № 1

за задаване на връзка много към 0 ... 1 трябва

1) Създавайте модели и добавете свързани лица в моделите

public class MainModel
{
public MainModel()
{
ChildModels= new HashSet<ChildModel>();
}

public int Id { get; set; }

public virtual ICollection<ChildModel> ChildModels{ get; set; }
}

public class ChildModel
{
public int Id { get; set; }

public int? MainModelId { get; set; }
public MainModel MainModel { get; set; }
}

2) Задайте връзка в контекстния клас от FluentApi

modelBuilder.Entity<MainModel>()
.HasMany(mm => mm.ChildModels)
.WithOptional(cm => cm.MainModel )
.HasForeignKey(cm => cm.MainModelId );

В една от тези стъпки може да направите грешка.

Базата данни на първо място е стар подход и не ви съветвам да го използвате.