【问题标题】:How to shim ObjectSet (EntityFramework)?如何填充 ObjectSet(EntityFramework)?
【发布时间】:2014-06-10 11:22:19
【问题描述】:

我已经填充了我的数据上下文。现在我需要填充一个表 get()。我遇到了 ObjectSet 的问题,因为我不知道如何填充它。

DataModel.Fakes.ShimMyEntities.Constructor = (inst) => {};
DataModel.Fakes.ShimMyEntities.AllInstances.Table1Get = (i)
  => ?

//在代码库中

using(MyEntities ctx = new MyEntities())
{
  ctx.Table1.ToList().ForEach(i => otherList.Add(i));
}

上面的问号应该去哪里?我尝试了以下变体来代替问号,但到目前为止没有任何效果:

=> { return new ObjectSet<Table1>(){ new ObjectContext("").CreateObjectSet<Table1>();} ; }

=> { return System.Data.Objects.Fakes.ShimObjectContext.AllInstances.CreateObjectSetOf1String<Table1>(inst, var1)   ???

【问题讨论】:

标签: .net entity-framework unit-testing c#-4.0 microsoft-fakes


【解决方案1】:

以下是我的做法:

var shimTable1ObjectSet = new System.Data.Objects.Fakes.ShimObjectSet<Table1>();
shimTable1ObjectSet.Bind((new List<Table1>()).AsQueryable());
DataModel.Fakes.ShimMyEntities.Constructor = (inst) => {};
DataModel.Fakes.ShimMyEntities.AllInstances.Table1Get = () => shimTable1ObjectSet.Instance;

有了它,您将能够在 ctx.Table1 上执行 ToList()Count()Where() 等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    相关资源
    最近更新 更多