如何在RIA Services中扩展抽象Entity类

时间:2010-12-24 09:59:57

标签: silverlight entity-framework ria

我想在我的RIA服务项目中向基础Entity类添加一个bool变量和属性,以便它可以在所有实体对象中使用,但似乎无法解决如何执行此操作。我知道使用.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类。

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

1 个答案:

答案 0 :(得分:2)

您将无法向Entity类添加属性。此类已编译且无法修改(部分类仅起作用,因为您的解决方案中包含该类的源代码,并且代码可以在编译时合并)。

一个选项可能是创建一个继承自Entity的类,然后在此类中添加您的属性,并让您的实体继承自您的自定义类而不是Entity。但这对于设计师来说可能并不实用。

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

public class Entity1 : MyEntityBase
{

}