Tag: entity framework

如何更新记录而不在ADO.NETentity framework中再次选择该记录?

大家好我正在做这样的事情 – void update(ClasstoUpdate obj)//obj is already having values to update… { var data= (from i in Entityobject.ClasstoUpdate where obj.Id==i.Id select i).FirstorDefault(); data.Name=”SomeCoolName”; EntityObject.SaveChanges(); } 我想在不再使用Id进行查询的情况下执行更新,是否有任何方法我只是将更新的对象传递给ADO.NETentity framework并更新它。对不起,如果我在这里遗漏了一些东西,但这是我的方式一直在想它是否有一种简单的更新方式。 谢谢。

entity framework4中的多对多查询

我的数据库中有很多关系。 两个结束表是BlogPost和Item,中间的表是ItemBlogPost。 我需要找回与特定项目相关的所有BlogPost。 在SQL中,我会这样做: SELECT BlogPost.* FROM BlogPost JOIN ItemBlogPost ON BlogPost.ID = ItemBlogPost.BlogPost_ID WHERE ItemBlogPost.Item_ID = @Item_ID 在C#中我有类似的东西: IQueryable itemBlogPosts = from b in connection.BlogPosts where b.Items == item.ID orderby b.Content.CreateDate descending select b; 但是,标记为b.Items的行没有给出Item属性的列表,并且没有b.ItemBlogPost来查看中间表。 我也尝试过做b.Items.Contains(item)但也失败了。 如何在LINQ to EF4中完成这项工作?

从异步方法获取结果

我的服务中有这个方法: public virtual async Task FindByIdAsync(string userId) { this.ThrowIfDisposed(); if (userId == null) { throw new ArgumentNullException(“userId”); } return await this.repository.FindByIdAsync(userId); } 然后在视图中我有这个代码: using (var service = new UserService(new CompanyService(), User.Identity.GetUserId())) { var user = service.FindByIdAsync(id); } 但用户是任务而不是用户 。 我尝试添加等待服务调用,但除非当前方法是异步,否则我不能使用await 。 如何访问User类?

VSentity framework中的Oracle实体不会更新代码中的主键

我有一个名为Tree的实体,它有一个名为Id的主键(使用StoreGeneratedPattern = Identity),当使用以下代码时,正确地插入到数据库中。 using(TestContainer tss = new TestContainer()) { Tree tree = new Tree() { Name = “TestTree” }; tss.Trees.AddObject(tree); tss.SaveChanges(); } 我有一个后备序列+触发器来处理自动递增的主键Id。 我已经validation这实际上正确插入数据库。 调用tss.Refresh(System.Data.Objects.RefreshMode.StoreWins, tree); 不更新对象(’Id’字段仍为0)。 有任何想法吗?

附加类型的实体失败,因为相同类型的另一个实体已具有相同的主键值。

让我快速描述一下我的问题。 我有5个客户的5个数据库 , 每个 数据库 都有一个名为SubnetSettings的表 。 我已经创建了一个下拉列表来选择一个客户,并将显示属于所选客户的SubnetSetting表,并允许我创建,编辑和删除。 我可以创建,删除没有问题, 但当我想编辑数据时,它会带来错误: ‘/ TMS’应用程序中的服务器错误。 附加“CFS.Domain.Entities.SubnetSettings”类型的实体失败,因为同一类型的另一个实体已具有相同的主键值。 如果图中的任何实体具有冲突的键值,则在使用“附加”方法或将实体的状态设置为“未更改”或“已修改”时,可能会发生这种情况。 这可能是因为某些实体是新的并且尚未收到数据库生成的键值。 在这种情况下,使用“添加”方法或“已添加”实体状态来跟踪图形,然后根据需要将非新实体的状态设置为“未更改”或“已修改”。 这是我的控制器中的编辑 // GET: /SubnetSettings/Edit1/5 public ActionResult Edit1(short? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } SubnetSettings subnetsettings = detailView.SubnetSettings.SingleOrDefault(t => t.Id == id); if (subnetsettings == null) { return HttpNotFound(); } return View(subnetsettings); } // POST: […]

序列在EF CF迁移中包含多个元素错误

我创建了一些模型,添加了迁移,然后执行了更新数据库操作,但在我上次更新数据库操作时,我收到了错误消息: 序列包含多个元素 您可以在下面找到我的迁移配置: context.Categories.AddOrUpdate(p => p.CategoryName, new Category { CategoryName = “Sport” }, new Category { CategoryName = “Music” } ); context.Subcategories.AddOrUpdate(p => p.SubcategoryName, new Subcategory { SubcategoryName = “Football” }, new Subcategory { SubcategoryName = “Basketball” }, new Subcategory { SubcategoryName = “Piano” }, new Subcategory { SubcategoryName = “Violin” } ); context.Services.AddOrUpdate(p => […]

entity framework提供exception:“底层提供程序在Open上失败。”

我有一个测试。 发生的事情是,无论何时首先执行test1,test2都会失败并显示以下消息: “System.Data.EntityException:System.Data.EntityException:基础提供程序在打开时失败。无法打开登录请求的数据库”DBEntities“。登录失败。” 每当test2首先执行时,test1就会失败并显示相同的消息。 过去3天我一直在这里。 [TestClass] class MyTestClass { DBEntities db; [TestInitialize] public void Initializer() { db = new DBEntities(); } [TestMethod] public void test1() { db.Books.Add(new Book{ …}); db.SaveChanges(); } [TestMethod] public void test2() { db.Books.Add(new Book{ …}); db.SaveChanges(); } [TestCleanup] public void Clean() { db.Dispose(); } } 这是DBEntities类的摘录: public class DBEntities : DbContext […]

EF6两个上下文与单个上下文有两个等待

哪一个是更好的性能方法? 注意:对于某些操作,我最多需要执行五个独立查询。 var foo = await context.foos.ToListAsync(); var bar = await context.bars.ToListAsync(); 与 var fooTask = context1.foos.ToListAsync(); var barTask = context2.bars.ToListAsync(); await Task.WhenAll(fooTask , barTask); 在没有等待的情况下使用相同的上下文会很棒,但是这个答案提到这是不可能的。

在entity framework中添加具有多对多关系的项目

当我尝试添加具有多对多关系的项时,我收到主键违规错误: 我有两个类 – 文章和标签有多对多的关系: public class Article { public int ID { get; set; } public string Text { get; set; } public ICollection Tags { get; set; } } public class Tag { [Key] public string UrlSlug { get; set; } public string Name { get; set; } public ICollection Articles{ get; set; } […]

如何在Linq to Entities查询中调用本地方法?

我有以下代码: public void SalesCount(string customerId) { .. .. return …; } var resultQuery = dataContext.Customers .Where (c => c.Name == “Alugili”) .Where (c => SalesCount(c.CustomerId) < 100); 当我执行resultQuery时,我得到了一个SQLexception的翻译。 我需要在我可以做的地方调用SalesCount这是否有解决此问题的方法!