в динамической дате asp.net, как использовать частичный метод для проверки полей данных в базе данных - PullRequest
0 голосов
/ 08 февраля 2011

Я хочу убедиться, что все названия продуктов уникальны, поэтому я попытался сделать следующее.но это вызывает бесконечный цикл в лямбда-выражении.

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 с динамическими данными и структурой сущностей.

Ответы [ 2 ]

1 голос
/ 06 сентября 2011

Почему бы вам не настроить его на уровне базы данных и не обрабатывать исключения в случае, если название продукта уже существует?

0 голосов
/ 12 марта 2011

Я не слишком знаком с EF, но вы должны получить набор изменений и сравнить значения.То есть для сущности продукта и для набора изменений, имеющего обновление, сравните значение EXISTING с NEW и измените новое в случае дублирования.

Вот как получить набор изменений в EF:http://davidhayden.com/blog/dave/archive/2005/11/16/2570.aspx

сравнение и значение должны быть вызваны перед любым контекстом. SubmitChanges ();

Надеюсь, это поможет.

...