У меня есть 2 класса, один называется MainWindowViewModel
и один называется Budget
. У меня есть MainPage.xaml, в котором хранится весь пользовательский интерфейс приложения.
У меня проблема с настройкой первичного ключа в моем классе Budget
. Я создал 2 отдельных соединения с SQLite, одно из которых называется conn
, а другое - bud
. Когда мое приложение запускается, оно мгновенно создает исключение для OnAppearing()
, говоря, что не может добавить первичный ключ к Budget
. OnAppearing
Просто показывает информацию, которую пользователь сохранил в виде списка.
protected override void OnAppearing()
{
base.OnAppearing();
using (SQLiteConnection conn = new SQLiteConnection(App.FilePath))
{
conn.CreateTable<MainWindowViewModel>();
var APRS = conn.Table<MainWindowViewModel>().ToList();
APRListView.ItemsSource = APRS;
}
using (SQLiteConnection bud = new SQLiteConnection(App.FilePath))
{
bud.CreateTable<Budget>();
var Budgets = bud.Table<Budget>().ToList();
BudgetListView.ItemsSource = Budgets;
}
}
Ниже мой App.Xaml.cs
public App()
{
InitializeComponent();
MainPage = new MainPage();
}
public App(string filePath)
{
InitializeComponent();
MainPage = new MainPage();
FilePath = filePath;
}
код для бюджета ниже ...
using System;
using SQLite;
namespace APRooved.ViewModels
{
public class Budget : ViewBaseModel
{
[PrimaryKey, AutoIncrement]
public int Budget_ID { get; set; }
public string BudgetInstanceText
{
get
{
return OutgoingProductName;
}
}
public string BudgetInstanceDetail
{
get
{
return "Monthly Cost: £" + OutgoingMonthlyCostS;
}
}
private string outgoingProductName { get; set; }
public string OutgoingProductName
{
get => outgoingProductName;
set
{
outgoingProductName = value;
OnPropertyChanged("OutgoingProductName");
}
}
private decimal outgoingMonthlyCost { get; set; }
public decimal OutgoingMonthlyCost
{
get => outgoingMonthlyCost;
set
{
outgoingMonthlyCost = value;
OnPropertyChanged("outgoingMonthlyCost");
outgoingMonthlyCostFin();
}
}
private string outgoingMonthlyCostS { get; set; }
public string OutgoingMonthlyCostS
{
get => outgoingMonthlyCostS;
set
{
outgoingMonthlyCostS = value;
OnPropertyChanged("outgoingMonthlyCostS");
}
}
public void outgoingMonthlyCostFin()
{
outgoingMonthlyCostS = outgoingMonthlyCost.ToString();
}
}
}