标签: entity-framework

非静态方法需要目标

我有一个控制器动作,可以在本地和生产中使用Firefox,在本地使用IE,但在生产中不是IE.这是我的控制器动作:

public ActionResult MNPurchase()
{
    CalculationViewModel calculationViewModel = (CalculationViewModel)TempData["calculationViewModel"];

    decimal OP = landTitleUnitOfWork.Sales.Find()
        .Where(x => x.Min >= calculationViewModel.SalesPrice)
        .FirstOrDefault()
        .OP;

    decimal MP = landTitleUnitOfWork.Sales.Find()
        .Where(x => x.Min >= calculationViewModel.MortgageAmount)
        .FirstOrDefault()
        .MP;

    calculationViewModel.LoanAmount = (OP + 100) - MP;
    calculationViewModel.LendersTitleInsurance = (calculationViewModel.LoanAmount + 850);

    return View(calculationViewModel);
}
Run Code Online (Sandbox Code Playgroud)

这是我在IE中获得的堆栈跟踪:

错误.处理您的请求时发生错误.System.Reflection.TargetException:非静态方法需要一个目标.System.Reflection.RuntimeMethodInfo.Invoke的System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj,BindingFlags invokeAttr,Binder binder,Object []参数,CultureInfo文化)中的System.Reflection.RuntimeMethodInfo.CheckConsistency(Object target)处于System.Reflection.RuntimeMethodInfo.Invoke(Object obj, System.Data.Objects.ELinq.QueryParameterExpression.TryGetFieldOrPropertyValue(MemberExpression me,Object instance,System.Reflection.RuntimePropertyInfo.GetValue(Object obj,Object [] index)中的BindingFlags invokeAttr,Binder binder,Object []参数,CultureInfo文化) System.Data.Objects.ELinq.ELinqQueryState上的System.Data.Objects.ELinq.QueryParameterExpression.EvaluateParameter(Object [] arguments)中的System.Data.Objects.ELinq.QueryParameterExpression.TryEvaluatePath(Expression expression,ConstantExpression&constantExpression)中的Object&memberValue) .GetExecutionPlan(Nullable 1 forMergeOption) at System.Data.Objects.ObjectQuery1.GetResults(Nullable 1 forMergeOption) at System.Data.Objects.ObjectQuery1.System.Collections.Generic.IEnumerable.GetEnumerator()在System.Linq.Enumerable.FirstOrDefault [T 来自 …

c# asp.net-mvc entity-framework asp.net-mvc-3 entity-framework-5

222
推荐指数
5
解决办法
20万
查看次数

实体框架中多列的唯一键约束

我正在使用Entity Framework 5.0 Code First;

public class Entity
 {
   [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
   public string EntityId { get; set;}
   public int FirstColumn  { get; set;}
   public int SecondColumn  { get; set;}
 }
Run Code Online (Sandbox Code Playgroud)

我想在两者之间进行组合,FirstColumn并且SecondColumn作为独特的组合.

例:

Id  FirstColumn  SecondColumn 
1       1              1       = OK
2       2              1       = OK
3       3              3       = OK
5       3              1       = THIS OK 
4       3              3       = GRRRRR! HERE ERROR
Run Code Online (Sandbox Code Playgroud)

反正有吗?

entity-framework constraints unique-key multiple-columns ef-code-first

222
推荐指数
8
解决办法
15万
查看次数

DbEntityValidationException - 如何轻松判断导致错误的原因?

我有一个使用Entity Framework的项目.在调用SaveChangesmy时DbContext,我得到以下异常:

System.Data.Entity.Validation.DbEntityValidationException:一个或多个实体的验证失败.有关详细信息,请参阅"EntityValidationErrors"属性.

这一切都很好,但每次发生此异常时我都不想附加调试器.此外,在生产环境中,我无法轻松附加调试器,因此我不得不竭尽全力重现这些错误.

我怎样才能看到隐藏在其中的细节DbEntityValidationException

c# entity-framework

216
推荐指数
7
解决办法
18万
查看次数

EF Code First中的十进制精度和比例

我正在尝试这种代码优先的方法,但我现在发现System.Decimal类型的属性被映射到decimal(18,0)类型的sql列.

如何设置数据库列的精度?

.net c# entity-framework decimal ef-code-first

215
推荐指数
10
解决办法
14万
查看次数

MSSQL错误'基础提供程序在Open上失败'

我正在使用一个.mdf连接到databaseentityClient.现在我想更改连接字符串,以便没有.mdf文件.

以下connectionString是否正确?

<connectionStrings>
   <!--<add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\NData.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />-->
   <add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQL2008;Initial Catalog=NData;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)

因为我总是得到错误:

底层提供程序在Open上失败

c# sql-server entity-framework database-connection

213
推荐指数
8
解决办法
55万
查看次数

有什么不同.AsNoTracking()会做什么?

我有一个关于.AsNoTracking()扩展的问题,因为这一切都很新而且很混乱.

我正在使用网站的每请求上下文.

我的很多实体都没有改变,所以不需要跟踪,但我有以下场景,我不确定数据库会发生什么,甚至在这种情况下它是否有所不同.

这个例子就是我目前正在做的事情:

context.Set<User>().AsNoTracking()
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
Run Code Online (Sandbox Code Playgroud)

这与上面相同,但从.AsNoTracking()步骤1中删除:

context.Set<User>();
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
Run Code Online (Sandbox Code Playgroud)

步骤1和2使用相同的上下文,但在不同的时间发生.我无法解决的是,是否存在任何差异.由于步骤2是更新,我猜两个都会打两次数据库.

谁能告诉我有什么区别?

.net c# entity-framework entity-framework-4.3

211
推荐指数
6
解决办法
13万
查看次数

如何将参数传递给DbContext.Database.ExecuteSqlCommand方法?

让我们假设我有一个在Entity Framework中直接执行sql命令的有效需求.我无法弄清楚如何在我的sql语句中使用参数.以下示例(不是我的实例)不起作用.

var firstName = "John";
var id = 12;
var sql = @"Update [User] SET FirstName = @FirstName WHERE Id = @Id";
ctx.Database.ExecuteSqlCommand(sql, firstName, id);
Run Code Online (Sandbox Code Playgroud)

ExecuteSqlCommand方法不允许您传入ADO.Net中的命名参数,并且此方法文档未提供有关如何执行参数化查询的任何示例.

如何正确指定参数?

entity-framework entity-framework-4.1

210
推荐指数
6
解决办法
17万
查看次数

实体框架:一个数据库,多个DbContexts.这是一个坏主意吗?

我的印象是DbContext意味着代表你的数据库,因此,如果你的应用程序使用一个数据库,你只需要一个DbContext.但是,有些同事希望将功能区域分解为单独的DbContext类.我相信这来自一个好地方 - 希望保持代码清洁 - 但它似乎不稳定.我的直觉告诉我这是一个坏主意,但不幸的是,我的直觉并不是设计决策的充分条件.

所以我正在寻找A)为什么这可能是一个坏主意的具体例子,或B)保证这一切都很好.

entity-framework ef-code-first dbcontext entity-framework-4.3

193
推荐指数
8
解决办法
10万
查看次数

转换为值类型"Int32"失败,因为实现值为null

我有以下代码.我收到错误:

"转换为值类型'Int32'失败,因为具体化值为null.结果类型的泛型参数或查询必须使用可空类型."

当CreditHistory表没有记录时.

var creditsSum = (from u in context.User
                  join ch in context.CreditHistory on u.ID equals ch.UserID                                        
                  where u.ID == userID
                  select ch.Amount).Sum();
Run Code Online (Sandbox Code Playgroud)

如何修改查询以接受空值?

.net c# linq-to-entities entity-framework

190
推荐指数
5
解决办法
12万
查看次数

实体框架6代码第一个默认值

是否有"优雅"的方式给特定属性一个默认值?

也许通过DataAnnotations,类似于:

[DefaultValue("true")]
public bool Active { get; set; }
Run Code Online (Sandbox Code Playgroud)

谢谢.

entity-framework default-value ef-code-first

187
推荐指数
9
解决办法
20万
查看次数