我在哪里为Code First实体制定业务规则

时间:2015-07-10 20:03:23

标签: entity-framework

我们首先在项目中使用MVP和实体框架代码。对于大多数基本函数,我们将使用DbContext,但我们想在添加Profiles时包含一些逻辑。验证和其他一些规则。

所以我们的对象是通常定义的:

public class Profile:BaseEntity
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]     
    public Guid ProfileId {get; set; }
    public string FirstName {get; set; }
    //....
}

我希望有一个我可以这样称呼的方法:

var newProfile = new Profile
{
    FirstName = "John", 
    ...
}
newProfile.Insert();
// or 
_dbContext.Profile.Add(newProfile);

请调用我们的方法来执行业务规则:

public bool AddProfile(Profile thisProfile)
{
    // Do our business
    return true; // or false if failed
}

我只是不确定放置该方法的最佳位置。我可以将它添加到Profile.cs吗?我应该将它添加到DbContext类中吗?

我不确定搜索的最佳方式或最佳条款。

1 个答案:

答案 0 :(得分:0)

如果只是在少数情况下需要这样做,你可以覆盖dbcontext的ValidateEntity方法

http://www.entityframeworktutorial.net/EntityFramework4.3/validate-entity-in-entity-framework.aspx

只有在调用SaveChanges();

时才会验证