Tag: 存储库模式

EF存储库模式多对多插入

我们有2个表: 表权限: public class Authority { public int ID {get;set;} public string Name{get;set;} … } 表代理商 public class Agent { public int ID{get;set;} public int FirstName{get;set;} } 我们在这两个表之间存在多对多的关系: public class AuthorityConfiguration : EntityTypeConfiguration { public AuthorityConfiguration() : base() { HasKey(p => p.ID); HasMany(p => p.Agents).WithMany(a => a.Authorities).Map(mc => { mc.MapLeftKey(“AuthorityID”); mc.MapRightKey(“AgentID”); mc.ToTable(“AuthorityAgent”); }); ToTable(“Authority”); } […]

为DDD中的实体生成标识

编辑 为了进一步澄清我最初的问题,我用更多的’DDD’ – 终点,常见模式和讨论论点重写了这个问题。 可以在修订版本中找到原始版本。 在正确应用DDD时,在域内生成实体 / 聚合根的身份的位置和方式? 我需要在创建或持久化时为我的实体分配唯一标识。 这些身份可以有多种风格 计算(基于实体的特征,因此基于业务要求) 自然的(基于一组规则,因此基于业务逻辑) 代理(基于随机生成的值,没有商业意义) 有许多方法可以生成和分配身份,从使用工厂创建身份,使用ORM授权到基础设施或数据库生成等。但是,如果正确应用DDD,身份应该在何处以及如何生成,考虑到我们不希望贫血领域模型和服务注入实体 ? 要求如上所述 没有贫血领域模型 没有dependency injection服务到实体 可能的方法 工厂 双重调度( 这可以用于身份生成吗? ) 在repositiories内生成 在基础设施内生成(例如ORM或数据库) 注入服务到实体

dependency injection

我们正在构建一个Windows桌面应用程序(不是基于Web的),并尝试提出实现Repository和UnitOfWork Pattern的最佳方法。 在典型的Asp.Net Mvc应用程序中,您的存储库注入数据上下文,服务注入存储库,最后控制器注入服务,如果您没有遇到任何exception,一切都很好,您将提交更改。 在Windows窗体/ wpf应用程序中,建议不要使用单个datacontext( Oren在MSDN上有一个post),所以我们决定在演示者处创建数据上下文。 我们正在使用Linq2SQl,我们有两个不同的数据库可以根据视图使用。 目前我有以下实施方案 public interface IRepository where T : class { IEnumerable Find(Expression<Func> where); T Single(Expression<Func> where); … } public class Repository : IRepository where T : class { private readonly Table _table; public Repository(DataContext dataContext) { _table = dataContext.GetTable(); } } public Class TodoService :ITodoService { IRepository _todoRepository; […]