首先,请原谅我的英语。
我在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,只需更改字段即可。有什么想法吗?
由于
答案 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; }
}
}