我正在尝试创建一个仅用于学习目的的应用。 我想动态地将任何对象保存到正确的上下文中。 所以我的想法是这样的:
我的播放器的商业模式是:
[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