获取dataContext和表的反射

时间:2013-09-11 19:43:32

标签: c# silverlight reflection

我正在尝试创建一个仅用于学习目的的应用。 我想动态地将任何对象保存到正确的上下文中。 所以我的想法是这样的:

我的播放器的商业模式是:

[Table]
public class PLAYER:ISiedlerEntity
{
    [Column(CanBeNull = false, IsPrimaryKey = true, DbType = "INT NOT NULL Identity", IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
    public long ID { get; set; }
    [Column]
    public string Name { get; set; }
    [Column]
    public int GamesPlayed { get; set; }
}

}

上下文是这样的:

public class PLAYERS:DataContext
{
    private const string CONNECTION_STRING = "isostore:/tblPLAYERs.sdf";

    public Table<PLAYER> Entities;

    public PLAYERS()
        : base(CONNECTION_STRING)
    {
    }
} 

你认为只要传递ISiedlerEntitiy就可以在一个函数中处理保存吗?

到目前为止我的方法:

    public static bool Save(ISiedlerEntity entity)
    {
        bool result = true;
        string dcName = entity.GetType().Name + "S";
        PropertyInfo pi = CurrentApp.GetType().GetProperty(dcName);
        DataContext dc = pi.GetValue(CurrentApp) as DataContext;

        foreach (var prop in dc.GetType().GetProperties())
        {
            if (prop.Name == "Entities")
            {
                var t = prop.GetValue(dc);

            }
        }


        return result; 
    }

到目前为止一切都很好,但现在我需要将datacontext强制转换为指定的上下文,以访问Entities属性。

你认为到目前为止这是可能的吗?或者是否有更简单的解决方案?

谢谢大家和晚上好。

MatthiasMüller

0 个答案:

没有答案