Monodroid:创建的SQLite表应该有更多的字段

时间:2012-03-01 11:27:16

标签: visual-studio-2010 sqlite mono xamarin.android

首先,请原谅我的英语。

我在Visual Studio 2010上使用monodroid工作。我正在为SQLite创建一些表,我遇到了一些问题。问题是这个表只有在主键(ID)应该包含更多字段时才会创建。

我正在使用Krueger的SQLite类来管理数据层。 下一行属于MyDataBase.cs,我在其中创建DataBase并调用create table。

CreateTable<MyTableClass>(); //This calls CreateTable on SQLite.cs

下面我展示了MyTableClass.cs

using MyApp.Core.DL.SQLite;

namespace MyApp.Core.BL
{
   public class MyTableClass : Contracts.BusinessEntityBase
   {
       public MyTableClass ()
       {
           Field1 = 0;
           Field2 = 0;
           Field3 = "";
       }

       public int Field1;
       public int Field2;
       public string Field3;
   }
}

这是BusinessEntityBase.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using MyApp.Core.DL.SQLite; 

namespace MyApp.Core.BL.Contracts

{
   public abstract class BusinessEntityBase : IBusinessEntity
   {
       public BusinessEntityBase()
       {
       }

       [PrimaryKey]
       public int ID { get; set; }

   }
}

界面

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyApp.Core.BL.Contracts
{
    public interface IBusinessEntity
    {
        int ID { get; set; }
    }
}

很少,其他表包含字段,代码类似于MyClass.cs,只需更改字段即可。有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

你的问题在于Field声明。它们应该是属性:

using MyApp.Core.DL.SQLite;

namespace MyApp.Core.BL
{
   public class MyTableClass : Contracts.BusinessEntityBase
   {
       public MyTableClass ()
       {
           Field1 = 0;
           Field2 = 0;
           Field3 = "";
       }

       public int Field1 { get; set; }
       public int Field2 { get; set; }
       public string Field3 { get; set; }
   }
}