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

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

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

问题 :当我尝试同时添加多个ProjectMembers时,我得到多个具有相同字符串的ProjectMemebers

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


项目

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

ProjectMember

 public class ProjectMember { ... } 

此本地标识由以下代码生成:

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