c# - 将类的属性映射到接口(interface)

标签 c# inheritance interface attributes

我只是想知道是否有一种方法可以将属性从类映射到接口(interface)而不更改它们的名称。

假设您从数据库导入了一些实体

public partial class Post
{
    public int PostId {get; set;}
}

public partial  class Book
{
    public int BookId {get; set;}
}

和一个界面:

public interface IHasID
{
   int Id {get; set;}
}

有没有办法继承这个接口(interface)并使用如下属性映射属性:

public partial class Post : IHasID
{
    [MetadataTypeAttribute(typeof(IHasID.Id))]
    public int PostId;
}   

我只是想要一种简单的方法来做到这一点,而不需要包装所有代码或更改数据库。有没有办法包装 parital 类以将其属性指向接口(interface)属性?

最佳答案

您可以创建一个 ID 属性来获取和设置对象的适当 ID,如下所示:

public partial class Post : IHasID
{
    [NotMapped]
    public int Id 
    {
        get { return PostId; }
        set { PostId = value; }
    }

    public int PostId { get; set; }

    ...

您当然会对 Book 执行相同的操作。

关于c# - 将类的属性映射到接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34793362/

相关文章:

java - 错误: "<Class> is not abstract and does not override abstract method <method>"

C# FileSystemWatcher,如何知道文件是否完全复制到监视文件夹中

c# - Entity Framework 5 日期时间为 null 或为空

c# - StructureMap -> EnrichWith 过于丰富(其他实例)

c# - 如何修复控制台写入类的名称?

C++: "Virtual"是否继承给所有后代

java - 你如何实例化一个内部类并实现一个额外的接口(interface)

c++ - 调用虚函数时的静态成员函数语义

mysql - 你能在 MySQL Workbench 中制作继承图吗?

java - 为什么内部类被迫实现其接口(interface)方法,即使外部类有它?