2

我正在使用实体框架进行一个项目,现在我遇到了一种情况,我需要使用表值函数返回具有 2 列的表,因此我搜索了很多,我知道我们在数据库优先方法中使用表值函数而我首先需要它在代码中。

这是情况

我有一张有两列的表

Table1

Id int PK
priority int

我想在我的 EF 查询中使用这个表。

他们有什么方法可以使用表值函数吗?

4

2 回答 2

4

我们可以通过使用 CLR 生成的 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);
}
于 2013-05-29T10:23:00.083 回答
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-框架-6-1/

于 2014-04-11T05:34:24.110 回答