【问题标题】:How to extend abstract Entity class in RIA Services如何在 RIA 服务中扩展抽象实体类
【发布时间】:2010-12-24 09:59:57
【问题描述】:

我想在我的 RIA 服务项目中向基础实体类添加一个布尔变量和属性,以便它在所有实体对象中都可用,但似乎无法解决如何执行此操作。我知道使用 .shared.cs 和部分类向实际实体本身添加属性很容易,但使用类似方法将此类属性添加到 Entity 类是行不通的。

比如下面的代码不行

namespace System.ServiceModel.DomainServices.Client
{
    public abstract partial class Entity
    {
        private bool auditRequired;
        public bool AuditRequired
        {
            get { return auditRequired; }
            set { auditRequired = value; }
        }
    }
}

所发生的只是现有的 Entity 类被完全覆盖,而不是扩展 Entity 类。

如何扩展基本实体类,以便在所有派生实体类中都可以使用功能?

【问题讨论】:

    标签: silverlight entity-framework ria


    【解决方案1】:

    您将无法向 Entity 类添加属性。该类已经编译,不能修改(部分类只能工作,因为您的解决方案中有该类的源代码,并且可以在编译时合并代码)。

    一种选择可能是创建一个继承自 Entity 的类,然后在此类中添加您的属性,并让您的实体继承自您的自定义类而不是 Entity。不过,这可能不适合设计师使用。

    public class MyEntityBase : Entity
    {
        private bool auditRequired;
        public bool AuditRequired
        {
            get { return auditRequired; }
            set { auditRequired = value; }
        }
    }
    
    public class Entity1 : MyEntityBase
    {
    
    }
    

    【讨论】:

    • 啊,我以为可能是这样的!感谢您的建议,我会考虑这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 2016-06-29
    相关资源
    最近更新 更多