gpt4 book ai didi

c# - EF 6 : Nested Complex type in another complex type

转载 作者:行者123 更新时间:2023-11-30 19:26:59 30 4
gpt4 key购买 nike

假设我有一个名为“汽车”的实体。

我使用复杂类型来定义“引擎”部分。

[TableName("T_CAR")]
public sealed class Car:IEngine
{
...
public EngineType EngineType{get;set;}

}

[ComplexType]
public sealed class Engine:IEngine
{

public Engin( )
{
this.EnginType = new EngineType( );
}

public EngineType EngineType{get;set;}

// other properties ...

}

[ComplexType]
public sealed class EngineType:IEngineType
{
...
}

当我运行此代码时,我收到来自 EF 6 的错误消息:

System.InvalidOperationException:“引擎”类型已配置为实体类型。它不能重新配置为复杂类型。

如果我删除 EngineType 的定义,它会起作用...

有没有办法在另一个复杂类型中添加一个嵌套的复杂类型?

最佳答案

编辑:这已经改变,EF6 现在支持嵌套的复杂类型,请记住将每个复杂类型设置为一个复杂类型。

public class EngineConfiguration : ComplexTypeConfiguration<Engine>
{
}
public class EngineTypeConfiguration : ComplexTypeConfiguration<EngineType>
{
}

然后在你的上下文中:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new EngineConfiguration());
modelBuilder.Configurations.Add(new EngineTypeConfiguration());
}

原始答案:不,ComplexTypes 可能只包含原始类型。我第一次在 Julie Lermans 的书中读到这个 Programming entity framework code first ,我认为 EF6 中没有取消此限制。

关于c# - EF 6 : Nested Complex type in another complex type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20332023/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com