C# 可以在实体对象接口上实现接口属性吗?

C# 可以在实体对象接口上实现接口属性吗?,c#,.net,entity-framework,interface,C#,.net,Entity Framework,Interface,我正在使用实体框架,并为租赁交易创建了一个接口: public interface ILeaseTransaction { int ID { get; } DateTime Date { get; } decimal Amount { get; } } 然后,为了在实体对象上实现接口,我创建了一个空的分部类: public partial class Type1LeaseTransaction : ILeaseTransaction { } 这很好,但是事务也可以有

我正在使用实体框架,并为租赁交易创建了一个接口:

public interface ILeaseTransaction
{
    int ID { get; }
    DateTime Date { get; }
    decimal Amount { get; }
}
然后,为了在实体对象上实现接口,我创建了一个空的分部类:

public partial class Type1LeaseTransaction : ILeaseTransaction
{

}
这很好,但是事务也可以有零个或一个作为实体对象的空白。我试图实现以下空洞:

public interface ILeaseTransactionVoid
{
    int TransactionID { get; }
    DateTime Date { get; }
    int TypeID { get; }
}
public partial class Type1LeaseTransactionVoid : ILeaseTransactionVoid
{
    ILeaseTransactionVoid ILeaseTransaction.Void
    {
        get { return (ILeaseTransactionVoid)Void; }
    }
}
空的部分类…:

public partial class Type1LeaseTransactionVoid : ILeaseTransactionVoid
{

}
我遇到的问题是,当我尝试将
ILeaseTransactionVoid
作为属性添加到
LeaseTransaction
接口时:

public interface ILeaseTransaction
{
    int ID { get; }
    DateTime Date { get; }
    decimal Amount { get; }
    ILeaseTransactionVoid Void { get; } // This throws an error
}
当我尝试构建时,会出现以下错误:

“DomainModel.Models.Type1LeaseTransaction”未实现接口成员“DomainModel.Abstract.ILeaseTransaction.Void”。 “DomainModel.Models.Type1LeaseTransaction.Void”无法实现“DomainModel.Abstract.ILeaseTransaction.Void” 因为它没有匹配的返回类型“DomainModel.Abstract.ILeaseTransactionVoid”

我想这个错误是有意义的,因为返回类型不是接口本身,即使它实现了接口。我对这一切都不熟悉,所以我现在完全迷路了

我有没有办法在
ILeaseTransaction
上实现嵌套接口属性
ILeaseTransactionVoid


谢谢大家!

所以这似乎不是很流行,但我还是设法找到了答案,希望有一天有人会觉得这很有用:

解决方案是保持接口签名与上述相同:

public interface ILeaseTransaction
{
    int ID { get; }
    DateTime Date { get; }
    decimal Amount { get; }
    ILeaseTransactionVoid Void { get; } // This throws an error
}
并通过添加特定于接口的属性更改实体类实现接口的方式,如下所示:

public interface ILeaseTransactionVoid
{
    int TransactionID { get; }
    DateTime Date { get; }
    int TypeID { get; }
}
public partial class Type1LeaseTransactionVoid : ILeaseTransactionVoid
{
    ILeaseTransactionVoid ILeaseTransaction.Void
    {
        get { return (ILeaseTransactionVoid)Void; }
    }
}

我确实有这个问题,所以我很高兴找到这个解决方案。。。。但是,我的实现有两个错误:1。(我的Void属性等价物)错误的显式实现是:忽略前面的注释-我解决了我的问题。非常感谢您发布答案-这在这里产生了很大的不同!