- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我希望这是有道理的。我有一个使用 Entity Framework 的 ASP.NET Web 应用程序。我在数据库中添加了几个自定义表,并创建了一个单独的项目来处理这些表的 CRUD 操作。我选择了单独的项目,因为我不希望将来对应用程序的升级会覆盖我的自定义功能。
我的问题是这样的。如何将我的自定义 ObjectContext 附加/组合到应用程序的 ObjectContext?我想使用相同的 UnitOfWorkScope(已在应用程序中)为每个 HTTP 请求维护一个 ObjectContext 实例。同样,出于上述原因,我不想将我的 ObjectSet 添加到应用程序的 ObjectContext。
这是一些代码:
Widget.cs
public partial class Widget
{
public Widget()
{
}
public int WidgetId {get;set;}
public string WidgetName {get;set;}
}
WidgetObjectContext.cs
public partial class WidgetObjectContext : ObjectContext
{
private readonly Dictionary<Type, object> _entitySets;
public ObjectSet<T> EntitySet<T>()
where T : BaseEntity
{
var t = typeof(T);
object match;
if(!_entitySets.TryGetValue(t, out match))
{
match = CreateObjectSet<T>();
_entitySets.Add(t, match);
}
return (ObjectSet<T>)match;
}
public ObjectSet<Widget> Widgets
{
get
{
if((_widgets == null))
{
_widgets = CreateObjectSet<Widget>();
}
return _widget;
}
}
private ObjectSet<Widget> _widgets;
在我的 WidgetManager 类中,如果我使用应用程序的 ObjectContext,我会像这样查询我的表:
var context = ObjectContextHelper.CurrentObjectContext;
var query = from c in context.ObjectSet .... etc
我想要的是做这样的事情:
var context = ObjectContextHelper.CurrentObjectContext.Attach(WidgetObjectContext);
我知道这行不通,但这是我要实现的目标的要点。希望这已经足够清楚了。谢谢。
最佳答案
我认为这是不可能的。 ObjectContext 创建连接到描述映射和数据库的元数据的实体连接。但是您必须使用不同的元数据集——一组用于 ASP.NET 应用程序,另一组用于单独的项目。您只需要两个连接即可使用这些模型 => 您需要两个 ObjectContext。
关于asp.net - 将其他 ObjectSet 从单独的项目附加到 ObjectContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3730562/
我正在尝试缩短长代码。原始代码执行以下操作: using (var context = new DataEntities()) { context.Table1.Foreach(x =>{ /
我正在使用 EntityFramework 和 IRepository 模式,我需要向所有 EntityCollections 添加一些事件。 有没有办法获取 ObjectContext 上的集合列表
概述/描述 简单:从TEntity 中派生 的运行时类型对象的多态删除添加到 ObjectSet不会提高 IBindingList.ListChanged IBindingList 上的事件Objec
我已经填充了我的数据上下文。现在我需要填充一个表 get()。我遇到了 ObjectSet 的问题,因为我不知道如何填充它。 DataModel.Fakes.ShimMyEntities.Constr
作为MSDN建议我们可以使用以下 ObjectContext using (AdventureWorksEntities context = new AdventureWorksEntities())
为什么(在 WPF、C#、 Entity Framework 中)将 ListBox 绑定(bind)到在 ObjectSet 上创建的 ObservableCollection(来自 Entity框
我正在我的项目中进行 DAO 单元测试,但我在使用 ObjectSet 类时遇到了问题。我必须创建一个新的 ObjectSet 但为了做到这一点,我不能连接到数据库。所以我不能使用 BusinessM
ObjectSet 的默认顺序是按身份排序。我可以在映射中使用任何属性来指定自定义顺序吗?我不想引入任何可以对实体进行排序的属性,而不是“EntitiesByMyOrder”属性,我希望将特定顺序作为
博客圈似乎有一个共同的共识,即 Entity Framework 4 的一个重要特性是能够在通用 ObjectSet 之上创建通用存储库。通用存储库的示例实现基本上是 ObjectSet 的包装器,它
我是 Entity Framework 的新手,我有一个问题。是否可以将类型 var 转换/转换为强类型 ObjectSet。 例如我想做这样的事情(这只是我头脑中的一个例子,不是真正的代码): va
我的目标是使用 Entity Framework (也许是反射)来创建这样的函数: public List getTableByName(string tableName) { ObjectQu
除非我这样写,否则 ObjectSet.Single(predicate) 不起作用(Where() 和 toList() 方法也是如此): ObjectSet.Cast().Single(predi
为了在密集的数据库使用系统中进行访问控制,我必须实现一个对象集包装器,其中将检查 AC。 主要目标是进行此更改以保留现有的数据库访问代码,该代码是通过对所有类的实体进行 linq 实现的(没有集中的数
我创建了一个通用的 ObjectSet在我的通用存储库中。 我想得到的是 name ObjectSet 的 EntityKey这样我就可以在 DataContext.GetObjectByKey 中使
我使用:EntityFramework + POCO 这是事情: public interface IBaseType { int Id { get; set; } } public clas
我正在使用Entity Framework 4建立存储库,但无法使ObjectSet.AddObject()方法正常工作。这是我正在使用的代码-为简单起见,我将其从存储库中复制到了单元测试方法中: /
我想将一组条件 where 子句附加到 ObjectSet 的末尾。但是,子句不会执行,而是运行原始查询,例如: using (Entities context = new Entities()){
我希望这是有道理的。我有一个使用 Entity Framework 的 ASP.NET Web 应用程序。我在数据库中添加了几个自定义表,并创建了一个单独的项目来处理这些表的 CRUD 操作。我选择了
我已将数据库 View 添加到我的实体模型中。现在我试图将一个 ObjectSet 放入我的 ObjectContext 中,这样我就可以访问我的应用程序中的 View 。 对于常规表,我的 Obje
我对 TypeScript 很陌生,尤其是对 Object(Sets) 的自定义 Palantir 实现。我想要存档的内容:我想将 ObjectSet 过滤为某些特定值。然后我想返回这些值中的第一个。
我是一名优秀的程序员,十分优秀!