并发检查ICollection(在添加期间)
在我的ASP.NET项目中,我使用Entity Framework来设置一个包含所有Project
对象的表,另一个用于跟踪ProjectMembers
。 也就是说, Project
有一个Projectolmbers的ICollection。
每个ProjectMember
在Project
中都有一个与主键不同的数字(它可以被认为是本地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;