在asp.net动态日期中,如何使用部分方法来验证数据库中数据的字段
我想确保所有产品名称都是唯一的,所以我尝试执行以下操作。 但它导致 lambda 表达式出现无限循环。
public partial class Product
{
partial void OnProductNameChanging(string value)
{
using(var ctx = new MyEntityContext()){
var val = value;
var item = ctx.Products.Where(o=>o.ProductName == val).FirstOrDefault();
if(item != null)
throw new ValidationException("Product Name existed.");
}
}
}
我正在使用带有动态数据和实体框架的asp.net 4.0。
i want to make sure all product names are unique so i tried to do the following.
but it is causing an infinity loop at the lambda expression.
public partial class Product
{
partial void OnProductNameChanging(string value)
{
using(var ctx = new MyEntityContext()){
var val = value;
var item = ctx.Products.Where(o=>o.ProductName == val).FirstOrDefault();
if(item != null)
throw new ValidationException("Product Name existed.");
}
}
}
i'm using asp.net 4.0 with dynamic data and entity framework.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为什么不在数据库级别设置它并处理异常,以防产品名称已存在?
Why don't you set it up on database level and handle exeption in case if product name already exists?
我对 EF 不太熟悉,但你应该获取变更集并比较值。也就是说,对于产品实体并且在变更集具有更新的情况下,将现有值与新值进行比较,并在重复的情况下更改新值。
以下是在 EF 中获取 ChangeSet 的方法:
http://davidhayden.com/blog/dave/archive/2005 /11/16/2570.aspx
必须在任何 context.SubmitChanges() 之前调用比较和值;
希望这有帮助。
I am not too familiar with EF, but you should get the changeset and compare values. That is, for the Product Entity and in the case of the the changeset having an Update, compare the EXISTING value with NEW, and change the new in the case of duplication.
Here's how to get changeSet in EF :
http://davidhayden.com/blog/dave/archive/2005/11/16/2570.aspx
the comparison and value must be called before any context.SubmitChanges();
Hope this helps.