При множественном наследовании дублируются столбцы в базе данных, и возник конфликт - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть два класса, унаследованных от одного базового класса.Вот часть кода:

public abstract class baseclass
{
    public virtual int? MyObjectID { get; set; }
    public virtual Object MyObject { get; set; }
}
public class Derived1 :baseclass
{

}
public class Derived2 : baseclass
{

}

В базе данных, которая содержит 3 столбца для одного свойства: MyObjectID MyObject_ID MyObject_ID1

Поэтому я не могу отправить значение в базу данных.Это должен быть только один столбец: MyObjectID Как предотвратить дублирование столбцов?

1 Ответ

0 голосов
/ 24 апреля 2019

Я решил это с помощью Fluent Api:

modelBuilder.Entity<AnotherObject>().Ignore(o => o.Derived1);
modelBuilder.Entity<AnotherObject>().Ignore(o => o.Derived2);
modelBuilder.Entity<Object>().Ignore(o => o.AnotherObject);

И теперь у меня есть другая проблема.Мне нужно установить одно из свойств базового класса из класса Derived.

public abstract class BaseClass
{
    public virtual string MutualString { get; set; }
}
public class Derived1 :BaseClass
{
    public virtual Object1 Kisi { get; set; }
    public override string MutualString
    {
        get { return Kisi.TamAd; } //*TamAd is string.
        set { value = Kisi.TamAd; }
    }
}
public class Derived2 : BaseClass
{
    public virtual Object2 Firma{ get; set; }
    public override string MutualString
    {
        get { return Firma.TamAd; }
        set { value = Firma.TamAd; }
    }
}

Я получил ошибку при попытке листинга."System.NullReferenceException: 'Ссылка на объект не установлена ​​для экземпляра объекта.' 'Но это не нуль

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...