如果我有这样的类型
public class SomeType
{
public string Text { get; set; }
// Other properties that are not mapped...
}
其中只有一个字符串类型的映射属性,如何将所有对 SomeType 的引用映射到一个简单的文本列(SomeType.Text 的值),从而避免生成 SomeType 表?
如果我有这样的类型
public class SomeType
{
public string Text { get; set; }
// Other properties that are not mapped...
}
其中只有一个字符串类型的映射属性,如何将所有对 SomeType 的引用映射到一个简单的文本列(SomeType.Text 的值),从而避免生成 SomeType 表?
如果SomeType
未定义为实体(即DbSet<SomeType>
在您的上下文中没有),那么它是一个复杂类型,它的值将与使用您的复杂类型的实体存储在同一个表中。所以,如果你有这样的实体Customer
:
public class Customer
{
public SomeType Foo { get; set; }
// other members
}
然后在Customers
表中你将有列Foo_Text
。SomeType
不会创建单独的表 for 。复杂类型的唯一限制是您不能null
对它们有价值。
EntityPropertyName_ComplexTypePropertyName
如果默认列名不适合您的需要,您还可以为您的复杂类型指定映射:
modelBuilder.ComplexType<SomeType>()
.Property(st => st.Text).HasColumnName("Text");