ale*_*xey 8 .net entity-framework entity-framework-4.1
我正在使用Entity Framework 4.1 RC和代码第一种方法. 如何调用自定义SQL函数?
如果我使用EdmFunction属性,我应该指定什么命名空间?
[EdmFunction("Namespace", "GetAge")]
public static int GetAge(Person p)
{
throw new NotSupportedException(…);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用此类函数执行LINQ查询时,抛出以下异常:
类型"..."上的指定方法"..."无法转换为LINQ to Entities存储表达式.
如果要调用SQL函数,则必须执行自定义SQL查询.为此,请使用context.Database.SqlQuery.实体框架支持存储过程的映射,但DbContext API(EF 4.1)不支持此功能.如果要调用存储过程,则必须再次使用context.Database.SqlQuery.Linq查询中永远不能使用存储过程.
EdmFunction是ObjectContext API和实体设计器的特性.命名空间设置为EDMX文件中定义的命名空间.使用代码优先时,您没有EDMX文件,也无法定义函数映射.
顺便说一句.如果您遵循代码第一种方法,则不应该有任何存储过程或SQL函数,因为数据库是由模型(代码)定义并由实体框架生成的.
| 归档时间: |
|
| 查看次数: |
6845 次 |
| 最近记录: |