gpt4 book ai didi

c# - 当 MVC 使用 SQL 2014 介入 EF6 调用时,VS 2013 崩溃

转载 作者:太空宇宙 更新时间:2023-11-03 15:52:39 27 4
gpt4 key购买 nike

我有一个 MVC5 项目,它分为一个主 XXXX.Site 和一个 XXXX.Data dll,它具有连接到 MS-SQL 2014 数据库的 EF6。

当我在 MVC Controller 上并在 XXXX.Data dll 中运行的调用中按 F10 时,一切顺利。如果我进入 DLL 代码并在实际的 EF 调用上放置一个断点......Visual Studio 就会崩溃。

我在 DLL 和 MVC 站点上尝试了不同的方法,例如重新添加 EF6.1.1.1,但没有任何效果。我尝试删除然后完全添加 EF。我尝试了一个新项目,只是将代码用于运行一个简单的存储过程,我什至尝试将 Data.dll 合并到 MVC 站点代码中,将所有数据库访问移动到 MVC 站点(主要是删除了 DLL 本身)......但是什么都没用!!

这是我目前注意到的:

1) 如果我在我编写的用于调用此存储过程的代码上放置一个断点...Visual Studio 就会崩溃。

    try
{
using (MyDB db = new MyDB())
{
// IF BREAKPOINT IS ON LINE BELOW, EXECUTION STOPS ABRUPTLY
db.MyStoredProc(value1, value2);
}
}
catch (Exception ex)
{
string s = ex.Message;
return false;
}

没有引发异常,当它发生时,浏览器会闪烁几次。然后这个消息出现在输出窗口:
XXXX.Data.dll 中发生类型为“System.AccessViolationException”的第一次机会异常

2) 如果我将断点放在实际自动生成的 EF6 代码中,程序会正常运行。

public virtual int MyStoredProc(string value1, string value2)
{
var value1Parameter = value1 != null ?
new ObjectParameter("Value1", value1) :
new ObjectParameter("Value1", typeof(string));

var value2Parameter = value2 != null ?
new ObjectParameter("Value2", value2) :
new ObjectParameter("Value2", typeof(string));

// IF BREAKPOINT IS ON LINE BELOW, EXECUTION RUNS NORMALLY
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("MyStoredProc", value1Parameter, value2Parameter);
}

请注意,我在两个 bin 文件夹(MVC 和 DLL)上都有 EntityFramework 和 EntitySQLServer dll。

问题:
是SQL2014的问题吗?我在连接到 SQL2012 时没有发生这种情况。
是否有设置显示实际发生的异常?
为什么 VS 爆炸而不是显示实际错误?

最佳答案

在使用具有“日期”类型输出参数的 SQL Server 存储过程时,我遇到了“试图读取或写入 protected 内存异常”错误。我尝试了各种方法都没有成功,为了节省时间,我决定采用以下解决方案。

1) 从存储过程中删除日期类型的输出参数。

2) 改为通过存储过程中的 select 语句返回一个字符串。

SELECT CONVERT(char(10), @AsOfDate, 20) AS AsOfDate

3) 将存储过程返回的字符串转换为 C# 中的 DateTime 值。

DateTime asOfDate = DateTime.Now;
using (var context = new DA.MyEntities())
{
var procResult = context.myStoredProcedure(myParameter).FirstOrDefault();
DateTime.TryParse(procResult, out asOfDate);
}

我对这种妥协不是很满意,但它确实让我前进了。

关于c# - 当 MVC 使用 SQL 2014 介入 EF6 调用时,VS 2013 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25151380/

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