gpt4 book ai didi

asp.net - 将其他 ObjectSet 从单独的项目附加到 ObjectContext

转载 作者:搜寻专家 更新时间:2023-10-30 20:32:00 28 4
gpt4 key购买 nike

我希望这是有道理的。我有一个使用 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/

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