在我的ASP.NET项目中,我使用Entity Framework设置一个包含所有Project
个对象的表,另一个用于跟踪ProjectMembers
的表。也就是说,Project
的ICollection为ProjectMembers
。
每个ProjectMember
在Project
中都有一个与主键不同的数字(可以将其视为本地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;