c# - 使用具有相同结构的两个不同表

标签 c# windows-phone-7 sql-server-ce

我有以下问题: 我的 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 模板通过代码生成您需要的位来为您解决这个问题。

看看这个,看看它是否有帮助。我自己没有尝试过,但看起来很有希望......

http://blogs.msdn.com/b/writingdata_services/archive/2012/01/25/new-and-improved-t4-template-for-odata-client-and-local-database.aspx

关于c# - 使用具有相同结构的两个不同表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9101514/

相关文章:

c# - 指纹读取器或拇指读取器

c# - 将多行数据导出到 csv 中的同一单元格

windows-phone-7 - WP7 在 SupportedOrientations ="Portrait"时检测屏幕方向变化

sql-server-ce - SQL CE 4.0 作为 InstallShield 先决条件

c# - 构建环境设置 - 使用 .net、java、hudson 和 ruby​​ - 真的可以使用批评

c# - 如何将 dll 文件添加到 UWP 项目中

c# - 从 Source 获取图片 uri

windows-phone-7 - WP7 导航 - NullReferenceException

c# - 使用 SQLConnection 连接到 SQL CE 数据库

c++ - 如何在不使用 OLE DB API 的情况下使用 C++ 查询 MS SQL Compact Server 3.5 数据库?