使用具有相同结构的两个不同表
本文关键字:两个 结构 | 更新日期: 2023-09-27 18:22:04
我有以下问题:在我的WP7项目中,SQL-CE数据库中有两个结构相同的表。我想根据某些条件动态地使用其中一个表。例如:
[Table]
public class myTable1 : someStructure { }
[Table]
public class myTable2 : someStructure { }
[Table]
public class someStructure
{
[Column (IsPrimaryKey = true, IsDbGenerated = true)]
public Int32 ID { get; set; }
[Column]
public String Name { get; set; }
}
public class myDB : DataContext
{
public myDB() : base("Data Source=isostore:/main.sdf") { }
public Table<myTable1> myTable1;
public Table<myTable2> myTable2;
}
public partial class MainPage : PhoneApplicationPage
{
private void doit_Click(object sender, RoutedEventArgs e)
{
var _myDB = new myDB();
if (!_myDB.DatabaseExists())
_myDB.CreateDatabase();
Table<someStructure> _table;
if ( SOMECONDITION )
_table = _myDB.myTable1;
else
_table = _myDB.myTable2;
_table.InsertOnSubmit(new someStructure { Name = "aaa" });
_myDB.SubmitChanges();
}
}
我在_myDB.CreateDatabase()
行收到一个Unable to create database because mapped class 'databasetest1.myTable1' has zero members.
错误,并警告类型someStructure
无法转换为myTable1
和/或myTable2
类型。
我应该怎么做才能解决这项任务?
提前谢谢。
就我所尝试的而言,尽管我没有直接从CE那里获得它,但我从未能够让[Table]
拥有一个带有任何[Column]
属性的基类。您可以考虑使用T4模板来解决这个问题,只需生成所需的位。
看看这个是否有用。我自己没有试过,但看起来很有希望。。。
http://blogs.msdn.com/b/writingdata_services/archive/2012/01/25/new-and-improved-t4-template-for-odata-client-and-local-database.aspx