2016-07-29 6 views
0

とManyToOne関係を使用して認識されませんXamarinは、以下のパッケージでアプリをフォーム:ここ Package list一覧私はのCreateTableから、次の例外を取得SQLiteNetExtensions

は私のコードです:

// SAForm.cs 
using System; 
using System.Collections.Generic; 
using SQLite; 
using SQLiteNetExtensions.Attributes; 
using Newtonsoft.Json; 

namespace SurgeArrestor 
{ 
    public class SAForm 
    { 
     [PrimaryKey, AutoIncrement] 
     public long SAFormID { get; set; } 

     [JsonProperty(PropertyName = "_formID")] 
     public long FormID { get; set; } 

     [JsonProperty(PropertyName = "_formDate")] 
     public string FormDate { get; set; } 

     [JsonProperty(PropertyName = "_formNotes")] 
     public string FormNotes { get; set; } 

     [JsonProperty(PropertyName = "_formAnswers")] 
     [OneToMany(CascadeOperations = CascadeOperation.All)] 
     public List<SAAnswer> FormAnswers { get; set; } 
    } 
} 

// SAAnswer.cs 
using System; 
using SQLite; 
using SQLiteNetExtensions.Attributes; 
using Newtonsoft.Json; 

namespace SurgeArrestor 
{ 
    [Table("SAAnswer")] 
    public class SAAnswer 
    { 
     public SAAnswer() { } 

     [PrimaryKey, AutoIncrement] 
     public long SAAnswerID { get; set; } 

     [JsonProperty(PropertyName = "_formAnswerID")] 
     public long FormAnswerID { get; set; } 
     [JsonProperty(PropertyName = "_formID")] 
     public long FormID { get; set; } 
     [JsonProperty(PropertyName = "_questionID")] 
     public long QuestionID { get; set; } 
     [JsonProperty(PropertyName = "_answer")] 
     public Boolean Answer { get; set; } 

     [ForeignKey(typeof(SAForm))] 
     [JsonIgnore] 
     public long SAFormID { get; set; } 

    } 
} 


// SAFormTable.cs 
using System; 
using System.Linq; 
using System.Threading.Tasks; 
using System.Collections.Generic; 
using SQLite; 
using SQLiteNetExtensions; 

namespace SurgeArrestor 
{ 
    public class SAFormTable : SQLiteConnection 
    { 
     static object locker = new object(); 

     public SAFormTable(string dbPath) : base(dbPath) 
     { 
      lock (locker) 
      { 
       CreateTable<SAForm>(); // throws exception 
      } 
     } 
    // MORE CODE 
} 

この私の最初のXamarin.Formsアプリです。私は、MVVMCross.Community.Plugin.Sqlite/SQLiteNetExtensions-MvvmCrossパッケージを使用してXamarinアプリケーションで作業し、これらのクラスをモデル化するために使用しました。

翻訳に何か忘れましたか?私の知る限り、ネット拡張パッケージは同じManyToOne実装のサポートを提供します。

スタックオーバーフローでGoogleを検索しても、具体的な結果は得られませんでした。

洞察力/ご提案ありがとうございます。

答えて

0

1対多コレクションは、コレクションです。 Listは、SQLデータベースで本質的にサポートされていない、注文とインデックス作成をサポートする特殊なコレクションです。

ICollection<SAAnswer> FormAnswers { get; set; } 

List<SAAnswer> FormAnswers { get; set; } 

からあなたの財産を変更してみてください

関連する問題