Monodroid: созданная таблица SQLite должна иметь больше полей - PullRequest
0 голосов
/ 01 марта 2012

Прежде всего, извините за мой английский.

Я работаю с monodroid в Visual Studio 2010. Я создаю несколько таблиц для SQLite, и у меня есть проблемы с некоторыми из них.Проблема в том, что эти таблицы создаются только с первичным ключом (ID), когда у него должно быть больше полей.

Я использую класс SQLite Крюгера для управления уровнем данных.Следующая строка принадлежит MyDataBase.cs, где я создаю базу данных и вызываю для создания таблиц.

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 Ответ

1 голос
/ 01 марта 2012

Ваша проблема связана с объявлениями полей.Они должны быть Свойства:

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; }
   }
}
...