最近在做一个项目,采用了领域驱动(DDD)的理念来搭的框架,具体包括:
asp.net mvc5 + EntityFramework 、 Repository(仓储模式),还有其它,比如:Iunit of work、ioc(微软的unit)、dto、specification(规约)等。
因为第一次在CodeFirst下开发,感觉特别扭。所以写出来Complain一下。
现在将问题列出来:
1、每修改一次领域模型,数据库都要重新删除、创建一次
2、如果我正在sql server management studio上有查询分析器使用这个数据库,那么提示无法删除
3、之前添加的测试数据没了,要么初始化时写好,要么重新添加,要么数据迁移
4、当某个模型被多个其它模型用到时,如下面这种情况,我需要在这个模型下加N个集合
public class District { public Guid Id{ get; set; } public string Name{ get; set; } public virtual ICollection<UserDataObject> User{ get; set; }//用户 public virtual ICollection<ProductDataObject> User{ get; set; }//产品 public virtual ICollection<NewsDataObject> User{ get; set; }//资讯 }
这样的话,当我以列表的形式查询District时,就会把下面所有集合的数据都查出来,那性能是不是很差?我不知道lazy load是不是解决这个问题的
5、开发人员只有4个,一个解决方案N个层,感觉大部分时间都花在了找文件上,而没有放在领域或者业务处理上
6、因为用了IOC,N个接口,N个实现,比如我想查看具体实现的时候,F12直接到接口了,我还得去展开项目查找文件再查找方法,或者F12到接口然后再找到具体的方法,多累呀
先写出来这么多,碰到再写。