首页新闻找找看学习计划

关于 DDD 使用ORM问题

0
悬赏园豆:10 [已解决问题] 解决于 2016-03-02 21:36

初学DDD遇到的问题是这样的:

Customer中包含 Address 实体。 我用Petapoco 没法实现一对一或一对多关系的映射。园子里下的案例都是用
EntityFramework 来做的。求指点不用 EntityFramework 该怎么实现下面的映射实现增删改查

代码如下:

/// </summary>
    [PrimaryKey("Id")]
    [TableName("Customer")]
    public class Customer : IEntity, IAggregateRoot
    {
        private ICollection<CustomerRole> _customerroles;

        /// <summary>
        /// 唯一标示
        /// </summary>
        
        public int Id { get; set; }
        /// <summary>
        /// 用户名
        /// </summary>
        public string UserName { get; set; }
        /// <summary>
        /// 密码
        /// </summary>
        public string Password { get; set; }
        /// <summary>
        /// 邮箱
        /// </summary>
        public string Email { get; set; }
        /// <summary>
        /// 用户地址
        /// </summary>
        public Address UserAddress { get; set; }
      
       ...
    }
 [PrimaryKey("Id")]
    [TableName("Address")]
    public class Address
    {
        /// <summary>
        /// 唯一标示
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        /// 国家代码
        /// </summary>
        public string CountryCode { get; set; }
        /// <summary>
        /// 国家名称
        /// </summary>
        public string CountryName { get; set; }
        /// <summary>
        /// 省/州 代码
        /// </summary>
        public string ProvinceCode { get; set; }
        /// <summary>
        /// 省/州 名称
        /// </summary>
        public string ProvinceName { get; set; }
        /// <summary>
        /// 城市 代码
        /// </summary>
        public string CityCode { get; set; }
        /// <summary>
        /// 城市 名称
        /// </summary>
        public string CityName { get; set; }
        /// <summary>
        /// 县 代码
        /// </summary>
        public string CountyCode { get; set; }
        /// <summary>
        /// 县 名称
        /// </summary>
        public string CountyName { get; set; }
    }
mycing的主页 mycing | 初学一级 | 园豆:193
提问于:2016-03-02 00:01
< >
分享
最佳答案
0

默认场景下好像这个组件是不支持的,要支持也是只支持query操作。如果抛弃框架而言这块逻辑你可以自己实现repository,然后由其内部完成对这种对象的操作。

收获园豆:10
Daniel Cai | 专家六级 |园豆:10374 | 2016-03-02 11:43

那DDD 除了EntityFramework之外 还有什么ORM框架适合这种场景?

mycing | 园豆:193 (初学一级) | 2016-03-02 12:13

@mycing: 没接触过多少,但支持这种关联对象的(外键)orm实现复杂度要高很多。

Daniel Cai | 园豆:10374 (专家六级) | 2016-03-02 15:34
其他回答(1)
0

NPoco( 原petapoco)  已实现

https://github.com/schotime/NPoco/wiki/One-to-Many-Query-Helpers

蓝风» | 园豆:49 (初学一级) | 2016-05-29 12:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册