找不到InsertOnSubmit()方法

编程入门 行业动态 更新时间:2024-10-27 12:23:44
本文介绍了找不到InsertOnSubmit()方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我是Entity Framework的新手,我认为这里有些误会. 我试图在表中插入一行,在所有我发现代码示例的地方,它们都调用方法InsertOnSubmit(),但是问题是我在任何地方都找不到方法InsertOnSubmit或SubmitChanges.

I'm new to Entity Framework, and I'm think there is something that I misunderstand here. I'm trying to insert a row in a table, and everywhere I found code example, they call the method InsertOnSubmit(), but the problem is that I can't find anywhere the method InsertOnSubmit, or SubmitChanges.

错误告诉我: System.Data.Object.ObjectSet不包含InsertOnSubmit的定义,...

The error tell me: System.Data.Object.ObjectSet do not contain the definition for InsertOnSubmit, ...

我做错了什么?

msdn.microsoft/en-us/library/bb763516.aspx

GMR_DEVEntities CTX; CTX = new GMR_DEVEntities(); tblConfig Config = new tblConfig { ID = Guid.NewGuid(), Code = "new config code" }; CTX.tblConfigs.InsertOnSubmit(Config); // Error here

在FW 4.0上使用Visual Studio 2010

Using Visual Studio 2010 on FW 4.0

推荐答案

InsertOnSubmit是Linq-to-SQL方法,不在实体框架中.

InsertOnSubmit is a Linq-to-SQL method and not in the Entity Framework.

但是,由于我们的项目是从Linq到SQL的转换,因此我们提供了一些扩展方法,这些方法可能会有所帮助:

However, since our project was a conversion from Linq-to-SQL we have some extension methods that might help:

public static class ObjectContextExtensions { public static void SubmitChanges(this ObjectContext context) { context.SaveChanges(); } public static void InsertOnSubmit<T>(this ObjectQuery<T> table, T entity) { table.Context.AddObject(GetEntitySetName(table.Context, entity.GetType()), entity); } public static void InsertAllOnSubmit<T>(this ObjectQuery<T> table, IEnumerable<T> entities) { var entitySetName = GetEntitySetName(table.Context, typeof(T)); foreach (var entity in entities) { table.Context.AddObject(entitySetName, entity); } } public static void DeleteAllOnSubmit<T>(this ObjectQuery<T> table, IEnumerable<T> entities) where T : EntityObject, new() { var entitiesList = entities.ToList(); foreach (var entity in entitiesList) { if (null == entity.EntityKey) { SetEntityKey(table.Context, entity); } var toDelete = (T)table.Context.GetObjectByKey(entity.EntityKey); if (null != toDelete) { table.Context.DeleteObject(toDelete); } } } public static void SetEntityKey<TEntity>(this ObjectContext context, TEntity entity) where TEntity : EntityObject, new() { entity.EntityKey = context.CreateEntityKey(GetEntitySetName(context, entity.GetType()), entity); } public static string GetEntitySetName(this ObjectContext context, Type entityType) { return EntityHelper.GetEntitySetName(entityType, context); } }

EntityHelper MyExtensions 开源库.

Where EntityHelper is as per the MyExtensions open source library.

更多推荐

找不到InsertOnSubmit()方法

本文发布于:2023-11-14 05:00:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1586287.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:找不到   方法   InsertOnSubmit

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!