加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

linq-to-sql – 你能在Linq2Sql类上实现一个接口吗?

发布时间:2021-01-13 15:33:23 所属栏目:MsSql教程 来源:网络整理
导读:我有一个名为IAddress的接口,以及一个名为Address的类,用于处理街道,城市,州/省,邮政编码和国家.我有几个Linq2Sql类,它们具有所有地址信息,并且希望实现接口IAddress,并将其传递给Address的构造函数,以便加载属性值. 是否有可能通过我为其创建的部分类具有Lin

我有一个名为IAddress的接口,以及一个名为Address的类,用于处理街道,城市,州/省,邮政编码和国家.我有几个Linq2Sql类,它们具有所有地址信息,并且希望实现接口IAddress,并将其传递给Address的构造函数,以便加载属性值.

是否有可能通过我为其创建的部分类具有Linq2Sql类impment和接口?提前致谢!

补充评论

在我的课程中,我有一个名为MailToStreet的属性,我希望它映射到IAddress.Street.在分部课中有没有办法做到这一点?

解决了

感谢StackOverflow社区!很快!这是我的最终代码:

public partial class Location : IAddress
{
    string IAddress.Street
    {
        get { return this.Street; }
        set { this.Street = value; }
    }

    string IAddress.City
    {
        get { return this.City; }
        set { this.City = value; }
    }

    string IAddress.StateProvince
    {
        get { return this.StateProvince; }
        set { this.StateProvince = value; }
    }

    string IAddress.PostalCode
    {
        get { return this.PostalCode; }
        set { this.PostalCode = value; }
    }

    string IAddress.Country
    {
        get { return this.Country; }
        set { this.Country = value; }
    }
}

解决方法

LinqToSQL类是部分类,因此您可以拥有一个实现LinqToSQL类接口的附加文件.

只需将其添加到新文件中,使用与LinqToSQL类相同的类名:

public partial class LinqToSqlClass : IFoo {
    public void Foo() {
        // implementation
    }
}

如果您的LinqToSQL类已经实现了必要的比例,那么您应该只能包含接口声明.

要回答关于使用不同命名的LinqToSQL属性来实现接口的注释,您可以使用上面的语法,只需从interface属性调用LinqToSQL属性,或者为了使事情更清晰,使用显式实现:

public partial class LinqToSqlClass : IFoo {
    void IFoo.Foo() {
        return this.LinqFoo(); // assumes LinqFoo is in the linq to sql mapping
    }
}

通过使用此语法,访问您的类的客户端将看不到仅用于实现接口的冗余属性(除非将对象强制转换为该接口,否则它将是不可见的)

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读