【发布时间】:2013-04-17 08:09:43
【问题描述】:
我正在使用实体框架,我有这样的实体:
public class User : IEntity
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
[Required]
public String Email { get; set; }
public virtual ICollection<Project> UserProjects { get; set; }
}
public class Project : IEntity
{
[Key]
public int ProjectId { get; set; }
public String Title { get; set; }
public String Description { get; set; }
[ForeignKey("UserOwner")]
public int UserOwnerId { get; set; }
public virtual User UserOwner { get; set; }
}
我还使用存储库模式和工作单元模式。 例如我有方法 CreateProject(字符串标题,字符串描述,字符串 userOwnerEmail) 在仅包含项目存储库的项目逻辑类中。 我也有 UserLogic 类,允许我通过他的电子邮件获取用户。
我如何在 CreateProject 方法中通过他的电子邮件获取用户,以将他指定为项目所有者。
主要目的是创建松耦合方法。
我觉得这个例子不好:
public void CreateNewProject(String projectName, String description,String usersEmail)
{
var usersLogic = kernel.Get<IUsersServices>();
User owner = usersLogic.GetUserByEmail(usersEmail);
unit.Repository<Project>()
.Insert(new Project
{
Title = projectName,
Description = description,
CreationDate = DateTime.Now,
UserOwner = owner,
UsersIncludeedInProject = new List<User>()
});
unit.Save();
}
【问题讨论】:
标签: asp.net entity-framework repository-pattern dao unit-of-work