gpt4 book ai didi

entity-framework - 从 Entity Framework 3.5 调用存储过程

转载 作者:行者123 更新时间:2023-12-04 07:28:04 25 4
gpt4 key购买 nike

我正在使用 VS 2010 和 EF 3.5。我导入了一个存储过程,它使用 Function Import 功能返回一个 guid 列表。如何在我的代码中调用它?实例化后dbcontext,intellisense 不显示我导入的过程。我知道这在 EF 4.0 中很容易,但我在这个项目中坚持使用 EF 3.5。关于如何解决这个问题的任何想法而不是用老式的方法?

最佳答案

我认为 4 之前的 EF 版本不能使用不返回实体的导入存储过程。也就是说,您的存储过程必须返回一个完整的实体对象,以便 EF 使用它。由于您的过程仅返回 GUID 列表,因此 EF 不知道如何使用它。

您可以将它放在您的部分数据上下文类中以调用该过程:

    public IEnumerable<Guid> GetMyGUIDs()
{
if (this.Connection.State != System.Data.ConnectionState.Open)
this.Connection.Open();
var command = new System.Data.EntityClient.EntityCommand
{
CommandType = System.Data.CommandType.StoredProcedure,
CommandText = @"YourContext.YourProcedureName",
Connection = (System.Data.EntityClient.EntityConnection)this.Connection
};
var list = new List<Guid>();
using (var reader = command.ExecuteReader())
{
// get GUID values from the reader here,
// and put them in the list

reader.Close();
}
return list;
}

关于entity-framework - 从 Entity Framework 3.5 调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9538098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com