EntityFramework复杂类型-创新互联

为了说明什么是复杂属性,先举一个例子。

十多年的新兴网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整新兴建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“新兴网站设计”,“新兴网站推广”以来,每个客户项目都认真落实执行。
 public class CompanyAddress
    {
public int ID { get; set; }
public string CompanyName { get; set; }
public string StreetAddress { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
    }

public class FamilyAddress
    {
public int ID { get; set; }
public string StreetAddress { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
    }

上面有两个类:公司地址和家庭地址,它们有四个相同的属性:StreetAddress、City、State、ZipCode。映射到数据库中的结构如图:

这里,我们可以将这四个属性集合成一个复杂属性Address,修改后的类为:

public class CompanyAddress
    {
public int ID { get; set; }
public string CompanyName { get; set; }
public Address Address { get; set; }
    }

public class FamilyAddress
    {
public int ID { get; set; }
public Address Address { get; set; }
    }

    [ComplexType]
public class Address
    {
public string StreetAddress { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
    }

此时,所生成的数据库如图:

可以看到,两张表中仍然具有相应的地址属性信息。代码中的Address类就是复杂属性,它并不会在数据库中映射成相应的表,但我们的代码确简洁了许多。

所以如果有几个属性在几个类中都有用到,那么就可以将这几个属性集合成一个复杂类型,并在相应的类中增加这个复杂类型的属性。


文章题目:EntityFramework复杂类型-创新互联
文章位置:http://scyanting.com/article/dsjgog.html