【问题标题】:Retrieve "identical" complex object from database从数据库中检索“相同”的复杂对象
【发布时间】:2013-02-03 05:54:21
【问题描述】:

我在 LINQ to SQL 中有一个名为“Cars”的表,其中包含“Car”对象。

每辆车都有一个 EngineID 和一个 ColourID。

我在内存中创建了一个新的本地 Car 对象(尚未提交到数据库)。

我已经编写了一个 IEqualityComparer,它与 .Contains 结合使用效果很好。包含告诉我 TRUE/FALSE 是否已经存在与我创建的汽车“相同”的汽车。

但它返回一个布尔值..

我怎样才能真正得到哪些汽车是相同的..?

例如我想要类似的东西..

IQueryable<Car> IdenticalCar = db.Cars.Equals(MyCar).FirstOrDefault();

【问题讨论】:

    标签: c# linq-to-sql iequalitycomparer


    【解决方案1】:
    db.Cars.Where(c=>c.Equals(MyCar)).FirstOrDefault();
    

    【讨论】:

    • 谢谢xandy。但是当我尝试这段代码时,虽然我现有的 .Contains 方法返回 TRUE(存在相同的对象),但 .Equals 然后返回 null 并且找不到任何对象。 .Equals 是否肯定使用 IEqualityComparer?这似乎对我不起作用.. 干杯
    • 另外:当我调试上面的代码时,它永远不会进入我的 Equals 例程。那么,当我使用你的代码时,为什么不使用我自己的 Equals 实现呢?干杯..
    • 好的,我整理好了。我需要从 IEquatable 接口实现并实现我自己的 Equals(Car) 方法以及 Equals(obj) 方法和 GetHashCode 方法。干杯
    猜你喜欢
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    相关资源
    最近更新 更多