gpt4 book ai didi

winforms - 找不到 InsertOnSubmit() 方法

转载 作者:行者123 更新时间:2023-12-04 16:29:45 25 4
gpt4 key购买 nike

我是 Entity Framework 的新手,我认为我在这里误解了一些东西。
我试图在表中插入一行,在我找到代码示例的任何地方,他们都调用方法 InsertOnSubmit(),但问题是我在任何地方都找不到方法 InsertOnSubmit 或 SubmitChanges。

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

我做错了什么??

http://msdn.microsoft.com/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

最佳答案

InsertOnSubmit是一个 Linq-to-SQL 方法,而不是在 Entity Framework 中。

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

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 is as per the MyExtensions开源 library .

关于winforms - 找不到 InsertOnSubmit() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9333811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com