小编dov*_*luk的帖子

实体框架:重新查找最近添加到上下文的对象

我正在使用实体框架,我遇到了"重新找到"我刚刚创建的对象的问题...基本上它是这样的:

string theId = "someId";

private void Test()
{
  using(MyEntities entities = new MyEntities())
  {
    EntityObject o = new EntityObject();
    o.Id = theId;
    entities.AddToEntityObject(o);
    CallSomeOtherMethod(entities);
  }
}

void CallSomeOtherMethod(MyEntities ents)
{
  EntityObject search = ents.EntityObject.FirstOrDefault(o => o.Id == theId);
  if(search == null) 
  {
    Console.WriteLine("wha happened???");
  }
}
Run Code Online (Sandbox Code Playgroud)

(不保证代码可以正常运行 - 这一切都来自我的脑海)

为什么查询"找不到"刚刚创建的EntityObject?

如果我在AddToEntityObject之后调用SaveChanges()它可以工作(这并不让我感到惊讶),但为什么它不能正确地从缓存中拉出来?

我对这些东西仍然很绿,所以我希望有一些非常简单的东西,我只是忽略了......

谢谢

entity-framework

38
推荐指数
3
解决办法
2万
查看次数

我应该在哪里设置DataContext - 代码隐藏或xaml?

(老实说,我搜索并阅读了所有似乎相关的"相关问题" - 我希望我没有"错过"来自其他地方的这个问题但是这里......

设置DataContext有两种不同的方式(至少).可以使用XAML,也可以使用后面的代码.

什么是'最佳实践',为什么?

我倾向于赞成在XAML中设置它,因为它允许设计师自己定义集合,但我需要"弹药"为什么它是最佳实践或为什么我疯了,背后的代码是炸弹......

silverlight wpf datacontext

11
推荐指数
2
解决办法
6304
查看次数

为什么WCF在托管为Web服务时"正确"使用/公开抽象类型

我已经设计了很长一段时间的Web服务,但直到最近才开始提供"复杂的"WCF服务.我对WCF中对抽象类型明显缺乏"适当支持"感到困惑.当然 - 你可以使用它们 - 确保你可以让它们"工作"......你最终不会得到你想要的东西......

第一个问题是,如果从具有抽象类型的wsdl生成代码,则会得到截然不同的代码,因为它会回退到xmlserializer而不是DataContractSerializer.这显然有点不太理想......我想使用花哨的新的更快的序列化器,请谢谢...(以及Service/DataContract附带的所有内容)

另一方面 - 如果你先从代码开始并将正确归属的抽象wcf类暴露为Web服务,那么暴露的wsdl不包含abstract ="true"属性,使得"抽象类"在技术上具体......这不是我当然想要的......

我有一个解决方法,但它涉及一个疯狂的'hackery'我首先创建wsdl/xsd合同,删除任何abstract ="true"(哦 - 我不能提到我不能在xsd中使用属性然后svcuitl结果......但是现在我离开了ac#api,它有一个CONCRETE抽象类,然后我需要修改它来添加抽象关键字......这个'有效'但它是一个巨大的皮塔 - 而且不容易'可编写脚本'......

这一切都被打败了!我希望有人可以向我解释'为什么'这是......我欢迎那些没有引用"可靠"资源的答案,但我真的在等待这个人告诉我 - 用适当的文件(比如来自好朋友Don Box本人)为什么这才是......因为我只是不明白......

谢谢大家 - 如果有人想了解更多细节 - 请告诉我!

更新样本请求的更新 - 以c#开头

[ServiceContract]
public interface IShapeTest
{
  [OperationContract]
  AbsShape EchoShape(AbsShape shape);
}

public class ShapeTestImpl : IShapeTest
{
  public AbsShape EchoShape(AbsShape shape)
  {
    return shape;
  }
}

[KnownType(typeof(Square))]
public abstract class AbsShape
{
  [DataMember]
  public int numSides;
}

public class Square : AbsShape
{
  public Square() : base()
  {
    numSides = 4;//set the numSides …
Run Code Online (Sandbox Code Playgroud)

wcf

9
推荐指数
1
解决办法
4839
查看次数

标签 统计

datacontext ×1

entity-framework ×1

silverlight ×1

wcf ×1

wpf ×1