【发布时间】:2014-09-01 10:39:53
【问题描述】:
考虑以下简单的用户表
我想编写通过某些谓词返回用户的 Linq To SQL 代码,例如电子邮件地址,如果用户不存在,则创建用户。代码可能看起来像
User GetUser(String name, String email) {
using (var context = new DataContext()) {
User user = context.Users.FirstOrDefault(u => u.email.Equals(email));
if (user != null)
return user;
user = new User() { name = name, email = email };
context.Users.InsertOnSubmit(user);
context.SubmitChanges();
return user;
}
}
代码可能会并行执行,但不应创建重复用户。
出于几个原因,我宁愿不为表创建 unique 约束。您是否看到任何可以使用 Linq To SQL 实现且无需接触数据库的替代方案?
【问题讨论】:
-
你的代码不是已经在检查是否有重复吗?
标签: c# sql linq linq-to-sql