InsertOnSubmit
にVisual Studio 2010を使用するには、Entity Frameworkの中LINQのツーSQL方式とではありません。 EntityHelper
is as per the MyExtensionsオープンソースlibrary
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);
}
}
:私たちのプロジェクトはからの変換LINQのツーSQLだったので
はしかし、我々は助けるかもしれないいくつかの拡張メソッドを持っています。
LINQ to SQLではなくEFを使用しています。 – SLaks
linq-to-sqlと[Entity Framework](http://msdn.microsoft.com/en-us/library/bb738695.aspx)が混在しています。あなたは後者を使います。 –
Oups私の悪い、私は投稿を修正します – Hugo