首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数据库中的复杂类型- DDD项目的第一个模型

数据库中的复杂类型- DDD项目的第一个模型
EN

Stack Overflow用户
提问于 2014-10-17 18:59:49
回答 3查看 1K关注 0票数 3

比方说,在我的EF6项目数据库优先方法中,我有一个名为Address的复杂类型,只是为了澄清我的复杂类型没有任何标识,它只是独立数据聚合的合并,它甚至不负责自己的持久性

目前,我将与address关联的所有字段作为address组成部分的直接属性,并为Person类自动生成以下定义:

代码语言:javascript
复制
public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public Nullable<int> Easting { get; set; }
    public Nullable<int> Northing { get; set; }
    public string Building { get; set; }
    public string County { get; set; }
    public string PostCode { get; set; }
    public string StreetName { get; set; }
    public string StreetNumber { get; set; }
    public string Town { get; set; }
    public string Unit { get; set; }
    public string Village { get; set; }
    public int CountryId { get; set; }
}

理想情况下,我希望每次从数据库中更新模型时都会有如下内容

代码语言:javascript
复制
public class Person         
{
    public int Id { get; set; }
    public string Name { get; set; }
    public Address Address { get; set; }
}

public class Address
{
    public Nullable<int> Easting { get; set; }
    public Nullable<int> Northing { get; set; }
    public string Building { get; set; }
    public string County { get; set; }
    public string PostCode { get; set; }
    public string StreetName { get; set; }
    public string StreetNumber { get; set; }
    public string Town { get; set; }
    public string Unit { get; set; }
    public string Village { get; set; }
    public int CountryId { get; set; }
}

从数据库(SQL Server 2012)更新模型时,如何将所有与地址相关的字段作为名为address的聚合字段?

据我所知,唯一的办法就是修改T4模板。如果你唯一建议的解决方案是T4模板交替,你可以给我一些样本项目采取类似的策略或提供你自己的版本。

EN

Stack Overflow用户

发布于 2014-10-26 15:33:12

当您在EF中使用数据库优先方法时,您将生成的类的所有责任都放在生成器上。所以在这种方法中你不能得到复杂类型的地址。你应该使用其他方法来获得你想要的东西。如果我是你,我会使用代码优先的方法,用代码编写从现有数据库到类的映射。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26423564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档