如何在实体框架代码中使用表值函数第一种方法?

时间:2013-05-27 08:37:35

标签: entity-framework ef-code-first

我正在使用Entity Framework进行项目,现在我遇到了一种情况,我需要使用表值函数返回带有2列的表,因此我搜索了很多,我知道我们使用表值函数数据库第一种方法,而我在Code中首先需要它。

这是情况

我有一个有两列的表

Table1

Id int PK
priority int

我想在我的查询中使用此表格。

他们是否可以使用表值函数?

2 个答案:

答案 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/