私はWPF C#デスクトップアプリケーションを持っており、SQLiteを使用しています。 - 何の問題プライマリキーがないので更新できません
using SQLite;
[Table("Customer")]
public class Customer
{
[AutoIncrement]
[PrimaryKey]
public int CustomerId { get; set; }
public string CustomerRef { get; set; }
public string SName { get; set; }
public string FName { get; set; }
public string ContactNo { get; set; }
public string Email { get; set; }
public string Add1 { get; set; }
public string Add2 { get; set; }
public string Add3 { get; set; }
public string Town { get; set; }
public string County { get; set; }
public string PCode { get; set; }
public string Country { get; set; }
public override string ToString()
{
StringBuilder sb = new StringBuilder();
if (!string.IsNullOrEmpty(Add1))
{
sb.AppendLine(Add1.Trim());
}
if (!string.IsNullOrEmpty(Add2))
{
sb.AppendLine(Add2.Trim());
}
if (!string.IsNullOrEmpty(Add3))
{
sb.AppendLine(Add3.Trim());
}
if (!string.IsNullOrEmpty(Town))
{
sb.AppendLine(Town.Trim());
}
if (!string.IsNullOrEmpty(County))
{
sb.AppendLine(County.Trim());
}
if (!string.IsNullOrEmpty(PCode))
{
sb.AppendLine(PCode.Trim());
}
if (!string.IsNullOrEmpty(Country))
{
sb.AppendLine(Country.Trim());
}
return sb.ToString();
}
}
私はそれにレコードを追加します。
私はこのモデルを持っています。私は更新しようとすると、プライマリキーがないので、更新できません。
これはコードです:
var query = DB.Connector.Table<InformedWorkerModel.Customer>().Where(d => d.CustomerRef == customer.CustomerRef).FirstOrDefault();
if (query != null)
{
query.Add1 = customer.Add1;
query.Add2 = customer.Add2;
query.Add3 = customer.Add3;
query.Town = customer.Town;
query.County = customer.County;
query.Country = customer.Country;
query.PCode = customer.PCode;
query.ContactNo = customer.ContactNo;
query.Email = customer.Email;
query.FName = customer.FName;
query.SName = customer.SName;
DB.Connector.Update(query);
return query;
}
クイックウォッチを見ることができるようにそれはここドライバコードに破壊し、フィールド上の主キー示しています
をこれがされます私が最初にデータベースを作成したスクリーンショット。
任意のアイデアしてください?
ありがとうございました
は、はい、私はそれを知っているが、私のコードとデータスキーマがPKがすでに –