我使用Code First Entity Framework来完成我所有的数据库检索。不幸的是,在我工作的地方,他们强制要求使用存储过程来完成任何更新/插入/删除操作。使用存储过程混合实体框架 - 连接问题
我开始通过执行以下操作:
public partial class MyContext
{
public void AddStatus(int id, string status)
{
var connection = (SqlConnection)this.Database.Connection;
if(connection.State != ConnectionState.Open)
connection.Open();
SqlCommand cmd = connection.CreateCommand();
// ...
cmd.ExecuteNonQuery();
}
}
这一段时间工作的罚款,直到我碰到地方,我需要这个代码后直接检索从我的数据库中的数据,使用相同的上下文情景传来:
MyContext db = new MyContext();
db.AddStatus(1, "Open");
var item = db.Items.Find(1);
我得到了以下错误:
ArgumentException - EntityConnection can only be constructed with a closed DbConnection.
有什么办法可以混合这样的代码,还是我必须创建另一个连接到我的数据库?如果我创建一个新的连接,如分布式事务,如果我需要一个事务范围,我会遇到问题吗?
为什么不只是使用内置的proc映射机制? – BNL
什么是proc映射?它在Code First中工作吗?示例请 – Dismissile