Расчетные значения для сущностей Entity Framework - PullRequest
2 голосов
/ 25 февраля 2011

В моем проекте у меня есть объект с именем Product, содержащий свойство Price Мне нужно рассчитать налоги для каждого продукта, поэтому я сделал функцию, определенную моделью, как в этом уроке http://blogs.msdn.com/b/efdesign/archive/2009/01/07/model-defined-functions.aspx

Все отлично работает, сгенерированный SQL чистый, но у меня проблема.

Мне нужно было бы получить налоги для только что созданного объекта (объект Продукта не хранится в базе данных). Можно ли использовать функцию, определенную моделью, для такого объекта? Если нет, то как я могу создать метод для расчета налогов одним и тем же методом из linq и из чистого кода C #?

Спасибо заранее.

1 Ответ

1 голос
/ 25 февраля 2011

То, что я хотел бы сделать, это создать пользовательскую функцию в SQL Server, использовать ее для заполнения вычисляемого столбца, а затем просто вызвать ее из приложения, чтобы заполнить значение в tax значении вашего вновь созданного объекта.

К сожалению, в прошлый раз, когда я проверил, довольно неудобно вызывать UDF в EF4, поэтому я сделал, и я знаю, что это не самая чистая вещь в мире, это добавить контекст данных LINQ-to-SQLдобавьте UDF к этому , а затем просто вызовите UDF, как если бы это был метод C # оттуда.

Чтобы сделать вещи немного чище, я сделал еще один шаг и добавил тот жеопределение метода для моего EF4 ObjectContext (вручную, через частичный класс), а затем вызвал метод в моем контексте EF, который затем вызвал метод в экземпляре контекста L2S.

Я знаю, что это много, но на практике это не так уж и плохо.Вызов UDF в EF4 - это не такая удобная вещь, как L2S.

...