Tag: entity framework 4

数据上下文应该是静态的吗?

我正在使用entity framework4,我在其中一个基类中为模型创建了一个datacontext 。 但是我在分析它时每次尝试查询时都会创建上下文,所以我想把它设置为静态,这样它只创建一次并且总是重用。 您是否认为这是最好的方法,数据/对象上下文应始终保持静态? 使它静止是否有任何缺点? 数据上下文应该是静态的还是非静态的? 欢迎任何想法或建议。

entity framework:无法识别的元素“提供者”例外

当我在.NET 4.0中使用Entity Framework 5.0.0时,我在运行时得到一个无法识别的元素’providers’exception。 实际上,在.NET 4.0中,当我使用NuGet进行安装包时,会加载entity framework的4.4.0版本。 当我从资源管理器中检查文件的属性时,我可以看到: 这是我的配置文件 我感觉Entity Framework 4.4.0无法识别标签。 我可以删除或重命名该部分吗? 当我删除该部分时,我得到另一个例外: 底层提供程序在Open上失败 。

带有MVC3和EF4 CTP5w的JSON序列化的循环引用exception

当我尝试序列化通过EF4 CTP5返回的对象时,我遇到循环引用问题。 我使用代码第一种方法和简单的poco为我的模型。 我已经将[ScriptIgnore]属性添加到任何提供对象的反向引用的属性中,并且令人烦恼的是,如果我手动实例化poco的话,每个似乎工作正常,即它们串行化为JSON,并且确认了scriptignore属性。 但是,当我尝试序列化从DAL返回的对象时,我得到循环引用exception“序列化’System.Data.Entity.DynamicProxies.xxxx’类型的对象时检测到循环引用” 我已经尝试了几种方法来检索数据,但是他们都遇到了这个错误: public JsonResult GetTimeSlot(int id) { TimeSlotDao tsDao = new TimeSlotDao(); TimeSlot ts = tsDao.GetById(id); return Json(ts); } 下面的方法效果稍好,而不是时间段动态代理对象导致循环引用其为约会对象。 public JsonResult GetTimeSlot(int id) { TimeSlotDao tsDao = new TimeSlotDao(); var ts = from t in tsDao.GetQueryable() where t.Id == id select new {t.Id, t.StartTime, t.Available, t.Appointment}; return Json(ts); } 这个问题的任何想法或解决方案? […]

为什么EF试图在id-column中插入NULL?

对不起我的英语不好。 我正在使用Entity Framework 4.0(模型优先)编写我的项目。 在项目开始时,我遇到了这个问题:我试图在数据库中插入填充的对象,但我得到一个例外: “无法将值NULL插入列’CategoryId’,表’ForumDB.dbo.Categories’;列不允许空值.INSERT失败。语句已被终止。” Category usingCategory = new Category(“Using Forums”, “usingforums”, 0); using (Context) { Context.Categories.AddObject(usingCategory); Context.SaveChanges(); } 我检查了这个对象,我确信它已经填满了。 以防万一: public Category(string name, string urlName, int index) { CategoryId = Guid.NewGuid(); Name = name; UrlName = urlName; CategoryIndex = index; } 请告诉我发生了什么事? 谢谢你的帮助!

在LINQ表达式exception中检测到循环

我收到错误: 在LINQ表达式中检测到循环。 尝试执行以下操作时在ToList() : private IEnumerable FilterIdsByClient(IEnumerable entityIds) { entityIds = MyObjectContext.CreateObjectSet() .Where(x => x.ClientId == _clientId) .Where(x => entityIds.Contains(x.Id)) .Select(x => x.Id); return entityIds.ToList(); } 但是,这不会抛出任何exception并且工作正常: private IEnumerable FilterIdsByClient(IEnumerable entityIds) { entityIds = MyObjectContext.CreateObjectSet() .Where(x => x.ClientId == _clientId) .Where(x => entityIds.Contains(x.Id)) .Select(x => x.Id) .ToList(); return entityIds; } (当然这是一个简单的版本)。 任何人都知道为什么会发生这种奇怪的行为? 编辑: 这是堆栈跟踪: at […]

如何为运行时排序创建表达式树?

使用Entity Framework 4,我试图基于成员名称的集合实现动态排序。 基本上,用户可以选择要排序的字段和排序顺序。 我看过表达式树的例子,不能把它拼凑起来。 以下是一些细节: 列名集合: public List sortColumns; sortColumns = new List(); /// Example subset of video fields. The collection will vary. sortColumns.Add(“Width”); sortColumns.Add(“Height”); sortColumns.Add(“Duration”); sortColumns.Add(“Title”); video类定义如下: public class Video { public string Title { get; set; } public int Width { get; set; } public int Height { get; set; } public […]

使用LINQ聚合的entity framework来连接字符串?

这对我来说很容易在TSQL中执行,但我只是坐在这里,试着让它在EF4中工作! 我有一个表,让我们称之为TestData。 它有字段,比如:DataTypeID,Name,DataValue。 DataTypeID, Name, DataValue 1,”Data 1″,”Value1″ 1,”Data 1″,”Value2″ 2,”Data 1″,”Value3″ 3,”Data 1″,”Value4″ 我想对DataID / Name进行分组,并将DataValue连接成CSV字符串。 期望的结果应包含 – DataTypeID, Name, DataValues 1,”Data 1″,”Value1,Value2″ 2,”Data 1″,”Value3″ 3,”Data 1″,”Value4″ 现在,我正在努力做到这一点 – var query = (from t in context.TestData group h by new { DataTypeID = h.DataTypeID, Name = h.Name } into g select new { DataTypeID […]

EF 4在SQL中生成UNICODE字符串常量,其中列类型为varchar。 怎么避免?

在我的代码中,我有以下L2E查询的片段: where ol.ordhead.ohcustno == login && (ol.ollastdoctype == “IN”) && ol.olstatus == “9” 这转换为以下SQL片段: WHERE ([Extent8].[ohcustno] = @p__linq__1) AND (”IN” = [Extent7].[ollastdoctype]) AND (”9” = [Extent7].[olstatus]) … 在某个输入上,查询执行3秒。 我这样改变查询: where ol.ordhead.ohcustno == login && (ol.ollastdoctype == “IN” || ol.ollastdoctype == “CR”) && ol.olstatus == “9” 结果SQL更改如下: WHERE ([Extent6].[ohcustno] = @p__linq__1) AND ([Extent5].[ollastdoctype] IN (N”IN”,N”CR”)) AND […]

向客户端发送数据的最佳做法是什么:POCO或DTO?

我正在使用EF 4和POCO开始一个项目。 向客户端发送数据的最佳做法是什么? 我应该发送POCO还是应该有DTO? 在将实体(与上下文断开连接)发送到客户端时,我是否应该注意任何问题? 是否建议将POCO发送到客户端层?

在Entity Framework中动态添加where子句

我有这个sql语句 SELECT userID from users WHERE (name=’name1′ AND username=’username1′) OR (name=’name2′ AND username=’username2′) OR (name=’name3′ AND username=’username3′) OR ………. (name=’nameN’ AND username=’usernameN’) 我可以使用LINQ在entity framework中实现此语句吗?