繁体   English   中英

实体框架ID属性

[英]Entity Framework ID properties

我有一个第三方类模型(无法修改),我需要使用EF进行持久化。 问题在于该模型的某些类不具有ID属性,并且不具有任何可用作Fluent API生成的表的键的属性。

我还认为要在部分类中定义ID属性,但是部分类不能位于不同的程序集中,因此该解决方案不可行。 我脑海中浮现出思考,但我认为不可能。

有一种方法(使用Fluent API或其他技术)将属性(例如,自动增量)添加到无法修改的存在模型中?

除非sealed了第三方阶级,否则您应该能够将其用作基类,并从中衍生出更友好的阶级。 例如:

public class Foo //3rd party class
{ ... }

public class myFoo : Foo
{
    public long FooId {get; set;}
}

如果sealed您仍然可以在其周围写一个包装纸

public sealed class Foo //3rd party sealed class
{ ... }

public class FooWrapper
{
    public long FooId {get; set;}
    public Foo InnerFoo {get; set;} 
}

无论哪种情况,您都可以将自定义对象(派生类或包装器)持久保存到数据库中,然后在需要时提取原始Foo

编辑根据您的评论,您还可以使用复合键进行调查。 坦白说,我从未在EF中使用过它们,所以我什至不知道从哪里开始向您介绍它们,但是它们可能更适合您的特定需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM