我有以下问题: 我的 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();
}
}
我收到 Unable to create database because mapped class 'databasetest1.myTable1' has zero members.
_myDB.CreateDatabase()
行错误和类型 someStructure
无法转换为 myTable1
和/或 myTable2
类型。
我应该怎么做才能解决这个任务?
提前致谢。
最佳答案
据我所试,虽然我没有直接从 CE 人员那里得到它,但我从来没有能够得到一个 [Table]
来拥有一个包含任何 [Column]
属性。您可能会考虑使用 T4 模板通过代码生成您需要的位来为您解决这个问题。
看看这个,看看它是否有帮助。我自己没有尝试过,但看起来很有希望......
关于c# - 使用具有相同结构的两个不同表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9101514/