0

我正在为需要本地数据库的 Windows Phone 8 构建一个库。[Table]出于显而易见的原因,该库的用户将使用适当的 s 和s创建一个可映射的 LINQ-to-SQL 类[Column]。但是,对于每个这样的类,我需要更多的列来实现库的内部功能。我的想法是我将在库中包含一个基类,该基类将具有与所需列相对应的成员。用户只需从该类继承,添加他自己的成员并将该类用作最终的 LINQ-to-SQL 映射。

到目前为止,我的基类如下所示:

//Class to contain all the essential members
[Table]
public class SyncableEntityBase : NotifyBase, ISyncableBase
{
    [Column(DbType = "INT NOT NULL IDENTITY", IsDbGenerated = true, IsPrimaryKey = true)]
    public int ItemId { get; set; }

    [Column]
    public bool IsDeleted { get; set; }

    [Column]
    public DateTime RemoteLastUpdated { get; set; }

    [Column]
    public DateTime LocalLastUpdated { get; set; }       
}

和派生类,是这样的:

[Table]
public class ToDoCategory : SyncableEntityBase
{
    private string _categoryName;
    [Column]
    public string CategoryName
    {
        get
        {
            return _categoryName;
        }
        set
        {
            if (_categoryName != value)
            {
                NotifyPropertyChanging("CategoryName");
                _categoryName = value;
                NotifyPropertyChanged("CategoryName");
            }
        }
    }

    private string _categoryColor;
    [Column]
    public string CategoryColor
    {
        get
        {
            return _categoryColor;
        }
        set
        {
            if (_categoryColor != value)
            {
                NotifyPropertyChanging("CategoryColor");
                _categoryColor = value;
                NotifyPropertyChanged("CategoryColor");
            }
        }
    }
}

想法是有四个基本列和两个由用户添加的最终类。根据此处的 MSDN 文档,我需要附加[InheritanceMapping]需要继承类型的内容。但是,当我正在构建一个库时,我无法知道用户将从我的基类派生哪些类型(以及多少)。有没有办法解决?如何?

4

0 回答 0