我正在使用Entity Framework进行项目,现在我遇到了一种情况,我需要使用表值函数返回带有2列的表,因此我搜索了很多,我知道我们使用表值函数数据库第一种方法,而我在Code中首先需要它。
这是情况
我有一个有两列的表
Table1
Id int PK
priority int
我想在我的查询中使用此表格。
他们是否可以使用表值函数?
答案 0 :(得分:4)
我们可以通过使用CLR for Database first approach
生成的c#代码来实现您可以参考此网址以获取完整说明 http://blogs.msdn.com/b/adonet/archive/2011/06/30/walkthrough-table-valued-functions-june-ctp.aspx
我使用过这段代码,它对我来说很好用
[EdmFunction("NorthwindEntities", "GetDetailsForOrder")]
public IQueryable<Order_Detail> GetDetailsForOrder(Nullable<global::System.Int32> oid)
{
ObjectParameter oidParameter;
if (oid.HasValue)
{
oidParameter = new ObjectParameter("Oid", oid);
}
else
{
oidParameter = new ObjectParameter("Oid", typeof(global::System.Int32));
}
return base.CreateQuery<Order_Detail>("[NorthwindEntities].[GetDetailsForOrder](@Oid)", oidParameter);
}
答案 1 :(得分:4)
我创建了一个自定义模型约定,允许在EF6.1中的CodeFirst中使用存储函数。该约定可在NuGet http://www.nuget.org/packages/EntityFramework.CodeFirstStoreFunctions上获得。以下是包含所有详细信息的博客帖子的链接:http://blog.3d-logic.com/2014/04/09/support-for-store-functions-tvfs-and-stored-procs-in-entity-framework-6-1/