2012-02-01 91 views
3

我有以下问题的工作: 我有我的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()线和该类型someStructure不能转换到myTable1和/或myTable2类型警告一个Unable to create database because mapped class 'databasetest1.myTable1' has zero members.错误。

什么我应该做些什么来解决这个任务?

在此先感谢。

回答

0

据我所知,虽然我没有直接从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

相关问题