Tag: entity framework

DbArithmeticExpression参数必须具有数字通用types

TimeSpan time24 = new TimeSpan(24, 0, 0); TimeSpan time18 = new TimeSpan(18, 0, 0); // first get today's sleeping hours List<Model.Sleep> sleeps = context.Sleeps.Where( o => (clientDateTime – o.ClientDateTimeStamp < time24) && o.ClientDateTimeStamp.TimeOfDay > time18 && clientDateTime.TimeOfDay < time18 && o.UserID == userid).ToList(); 这个Linqexpression式抛出这个exception: DbArithmeticExpression arguments must have a numeric common type. 请帮忙!

Entity Framework 4 Single()vs First()vs FirstOrDefault()

我有一个魔鬼的时间find不同的方式来查询单个项目的比较,以及何时使用每个项目。 有没有人有链接比较所有这些,或者为什么你会使用一个快速解释? 还有更多的运营商,我不知道? 谢谢。

如果为空查询,则返回最大值

我有这个查询: int maxShoeSize=Workers.Where(x=>x.CompanyId==8).Max(x=>x.ShoeSize); 如果公司8根本没有工人,那么maxShoeSize会是什么? 更新: 如何更改查询以获得0而不是exception?

如何使用DbContext和SetInitializer修复datetime2超出范围的转换错误?

我正在使用entity framework4.1中引入的DbContext和Code First API。 数据模型使用基本数据types,如string和DateTime 。 我在某些情况下使用的唯一数据注释是[Required] ,但这不在任何DateTime属性中。 例: public virtual DateTime Start { get; set; } DbContext子类也很简单,如下所示: public class EventsContext : DbContext { public DbSet<Event> Events { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Event>().ToTable("Events"); } } 初始化程序将模型中的date设置为今年或明年的明智值。 但是,当我运行初始化,我得到这个错误在context.SaveChanges() : 将datetime2数据types转换为date时间数据types会导致超出范围的值。 该语句已终止。 我不明白为什么会发生这种情况,因为一切都很简单。 我也不知道如何解决这个问题,因为没有edmx文件来编辑。 有任何想法吗?

entity framework – 手动添加导航属性

我从我的数据库中生成一个entity framework模型(4.0)。 我没有devise数据库,也没有对模式进行任何控制,但有几个表没有定义外键约束,但却有一个隐式的关系定义。 例如: 我有一个名为People的表,它具有以下列:GenderID RaceID “性别”和“种族”都有表格,但“人物”表格中没有外键。 当我导入模型时,它没有为这些关系添加导航属性。 我试图手动添加它,但从angular色和angular色被禁用。 我不知道如何自己添加关系。 我该怎么做呢?

EntityType没有键定义的错误

控制器: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcApplication1.Models; using System.ComponentModel.DataAnnotations.Schema; namespace MvcApplication1.Controllers { public class studentsController : Controller { // // GET: /students/ public ActionResult details() { int id = 16; studentContext std = new studentContext(); student first = std.details.Single(m => m.RollNo == id); return View(first); } } } DbContext型号: […]

“带有语句正文的lambdaexpression式不能转换为expression式树”

在使用EntityFramework时 ,当试图编译以下代码时,出现错误“ A lambda expression with a statement body cannot be converted to an expression tree ”: Obj[] myArray = objects.Select(o => { var someLocalVar = o.someVar; return new Obj() { Var1 = someLocalVar, Var2 = o.var2 }; }).ToArray(); 我不知道错误是什么意思,最重要的是如何解决它。 任何帮助?

C#entity framework:如何结合模型对象上的.Find和.Include?

我在做mvcmusicstore练习教程。 创build相册pipe理器的脚手架时,我注意到了一些东西(添加删除编辑)。 我想优雅地写代码,所以我正在寻找干净的方式来写这个。 仅供参考我正在使商店更通用: 专辑=项目 stream派=类别 艺术家=品牌 以下是如何检索(由MVC生成)索引: var items = db.Items.Include(i => i.Category).Include(i => i.Brand); 以下是如何检索删除项目: Item item = db.Items.Find(id); 第一个带回所有物品,并在物品模型中填充类别和品牌模型。 第二个,没有填充类别和品牌。 我怎么能写第二个find并填充什么里面(最好在1行)…理论上 – 就像: Item item = db.Items.Find(id).Include(i => i.Category).Include(i => i.Brand);

确定我使用的entity framework的版本?

我相信有两个版本1和2? 而版本2被称为entity framework4.0? 我怎样才能知道在应用程序中使用了哪个版本? 这是在我的web.config这是否意味着我正在使用版本2? <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

提高entity framework中的批量插入性能

我想通过entity framework在表中插入20000条logging,大约需要2分钟。 除了使用SP来提高性能之外,还有什么办法可以改善性能。 这是我的代码: foreach (Employees item in sequence) { t = new Employees (); t.Text = item.Text; dataContext.Employees.AddObject(t); } dataContext.SaveChanges();