ICollection的并发检查(在添加期间)

时间:2015-08-03 09:34:55

标签: c# asp.net asp.net-mvc entity-framework

在我的ASP.NET项目中,我使用Entity Framework设置一个包含所有Project个对象的表,另一个用于跟踪ProjectMembers的表。也就是说,Project的ICollection为ProjectMembers

每个ProjectMemberProject中都有一个与主键不同的数字(可以将其视为本地ID,一种跟踪计数的方法)。基于此数字,将生成一个唯一的字符串,允许识别每个ProjectMember。保持这些字符串的唯一性非常重要(不会出现重复)。

问题:当我尝试同时添加多个ProjectMembers时,我会使用相同的字符串获得多个ProjectMemebers

问题:当添加新的ProjectMemebers时,是否有任何方法可以确保没有添加新的ProjectMember,或者至少会出现某种错误一个Project(最好不使用锁定语句)?并发检查和时间戳似乎都没有解决这个问题。

项目

public class Project
{
...
    [ConcurrencyCheck]
    public virtual ICollection<ProjectMember> ProjectMembers { get; set; }
}

ProjectMember

public class ProjectMember
{
... 
}

此本地ID由以下代码生成:

projectMember.localId = project.projectMemebers.Count() + 1;

0 个答案:

没有答案