Cod*_*tic 6 c# entity-framework complextype
现在我正在从Pluralsight的视频中学习很多关于实体框架的内容,所以请原谅我的问题可能看起来很新但我无法理解复杂类型是什么或为什么我需要它们.
我知道我必须通过Annotations或Fluent Api映射它们,如下所示:
modelBuilder.ComplexType<blubb>();
Run Code Online (Sandbox Code Playgroud)
也许有人可以为我详细说明复杂类型的需求?
假设您在一个类中有一个Courses实体,该实体具有Location,Days和Time的标量属性,但是您发现要抽象该实体,以便其他实体可以使用相同的模型。因此,您可以创建一个包含Days,Location和Time的复杂类型,并为其命名:ComplexType1。现在,仅通过在模型定义中声明ComplexType1,其他实体就可以使用此类型而不是单个标量属性。
复杂类型是数据库中重复的结构模式.您必须自定义映射它们,因为无法推断它.
一个例子是两个表都有地址相关的列:
公司
CompanyName
AddressLine1
AddressLine2
Postcode
Run Code Online (Sandbox Code Playgroud)
客户经理
Name
TelephoneNumber
SuperiorName
AddressLine1
AddressLine2
Postcode
Run Code Online (Sandbox Code Playgroud)
这显然不是很好的标准化数据库设计,但确实发生了这种情况.您可以将地址模型抽象为复杂类型,然后指定Company和AccountManager都具有该复杂类型,而不是继续映射具有地址列的每个表的匹配(尽管在数据库中是单独的)列.
这是一篇关于复杂类型的深入文章:http://msdn.microsoft.com/en-gb/data/jj680147.aspx
这里有一个不太重的,并且显示了在一个模型上映射两个地址的好处,例如:http://visualstudiomagazine.com/articles/2014/04/01/making-complex-types- useful.aspx
| 归档时间: |
|
| 查看次数: |
1756 次 |
| 最近记录: |