Мне нужно отобразить существующую базу данных, используя структуру Entity 6 для чтения (только (только) данных. /> Я упростил свою реальную ситуацию до самой простой в следующей модели: < /p>
< /p>
[Table("FruitBox")]
public abstract class FruitBox
{
[Key]
public Guid FruitBoxId { get; set; }
///
/// Discriminator can be "Banana" or "Cherry"
///
public string Discriminator { get; set; }
///
/// FK to the "Banana" or "Cherry" child, depending on Discriminator
///
public Guid FruitId { get; set; }
}
public class BananaBox : FruitBox
{
public Banana MyBanana { get; set; }
}
public class CherryBox : FruitBox
{
public Cherry MyCherry { get; set; }
}
[Table("Banana")]
public class Banana
{
[Key]
public Guid BananaId { get; set; }
public ICollection MyBananaBoxes { get; set; }
}
[Table("Cherry")]
public class Cherry
{
[Key]
public Guid CherryId { get; set; }
public ICollection MyCherryBoxes { get; set; }
}
< /code>
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity()
.Map(m => m.Requires("Discriminator").HasValue("Banana"))
.Map(m => m.Requires("Discriminator").HasValue("Cherry"))
modelBuilder.Entity()
.HasRequired(bb => bb.MyBanana)
.WithMany(b => b.MyBananaBoxes)
.HasForeignKey(bb => bb.FruitId);
modelBuilder.Entity()
.HasRequired(cb => cb.MyCherry)
.WithMany(c => c.MyCherryBoxes)
.HasForeignKey(cb => cb.FruitId);
}
< /code>
К сожалению, при попытке прочитать: < /p>
var boxes = this.DbContext.BananaBoxes.ToList()
< /code>
Следующее исключение добавлено: < /p>
system.invalidoperationexception: «Компонент иностранного ключа 'FruitId' не является объявленным свойством на типе 'bananabox'. Убедитесь, что он не был явно исключен из модели и что это действительное примитивное свойство. '
Я попытался переместить свойство FruitId
Мне нужно отобразить существующую базу данных, используя структуру Entity 6 для чтения (только (только) данных. /> Я упростил свою реальную ситуацию до самой простой в следующей модели: < /p> < /p> [list] [*][code]FruitBox[/code] Таблица владеет дискриминатором столбец, какое значение может быть «банан» или «вишня». [*][code]Fruitbox[/code] Таблица владеет (вроде) внешней ключом, указывающим на банановое или cherry , в зависимости от дискриминатора value. [/list] Что мне нужно, чтобы реализовать следующее отображение: [list] [*][code]FruitBox[/code] Таблица ([code]Discriminator = "Banana"[/code]) в бананабокс сущность, с бананом Child [*][code]FruitBox[/code] Таблица ([code]Discriminator = "Cherry"[/code]) в cherrybox entity, с вишневой Child [/list] Это моя реализация: [code][Table("FruitBox")] public abstract class FruitBox { [Key] public Guid FruitBoxId { get; set; }
/// /// Discriminator can be "Banana" or "Cherry" /// public string Discriminator { get; set; }
/// /// FK to the "Banana" or "Cherry" child, depending on Discriminator /// public Guid FruitId { get; set; } }
public class BananaBox : FruitBox { public Banana MyBanana { get; set; } }
public class CherryBox : FruitBox { public Cherry MyCherry { get; set; } }
[Table("Banana")] public class Banana { [Key] public Guid BananaId { get; set; } public ICollection MyBananaBoxes { get; set; } }
[Table("Cherry")] public class Cherry { [Key] public Guid CherryId { get; set; } public ICollection MyCherryBoxes { get; set; } } < /code> protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity() .Map(m => m.Requires("Discriminator").HasValue("Banana")) .Map(m => m.Requires("Discriminator").HasValue("Cherry"))
modelBuilder.Entity() .HasRequired(cb => cb.MyCherry) .WithMany(c => c.MyCherryBoxes) .HasForeignKey(cb => cb.FruitId); } < /code> К сожалению, при попытке прочитать: < /p> var boxes = this.DbContext.BananaBoxes.ToList() < /code> Следующее исключение добавлено: < /p>
system.invalidoperationexception: «Компонент иностранного ключа 'FruitId' не является объявленным свойством на типе 'bananabox'. Убедитесь, что он не был явно исключен из модели и что это действительное примитивное свойство. '
Я попытался переместить свойство FruitId [/code] из FruitBox в Bananabox (и на Cherry Box
Мне нужно отобразить существующую базу данных, используя структуру Entity 6 для чтения (только) данных. Модифицирован. FruitBox Таблица владеет дискриминатором столбец, какое значение может быть «банан» или «вишня».
Fruitbox Таблица владеет...
Я хочу создать компонент flexbox, в котором расстояние между каждым дочерним компонентом и расстояние между родительским и дочерним компонентами будет одинаковым. Это похоже на «равномерно по пространству», но я не хочу использовать статическое...