Моделирование и отображение столбцов из нескольких таблиц в виде списка - PullRequest
0 голосов
/ 02 августа 2020

В представлении списка моего приложения Xamarin Forms (или в представлении данных настольного приложения) я хотел бы показать записи, запрошенные из 3 таблиц. Ниже приведены 3 таблицы, которые хранятся в моей учетной записи базы данных Azure SQL. (Я использую отдельное веб-приложение ASP. Net Core REST API, опубликованное Azure, для связи между моим приложением и моей базой данных Azure.)

введите описание изображения здесь

В настоящее время я показываю только записи из tblMoney, а не из двух других таблиц. Вот часть, где список заполнен записями tblMoney.

public partial class MainPage : ContentPage
{
    private const string Url = "https://testwebapi.azurewebsites.net/tblmoney";
    private HttpClient _client = new HttpClient();
    private ObservableCollection<TblMoney> _tblmoney_items;

    public MainPage()
    {
        InitializeComponent();
    }

    protected override async void OnAppearing()
    {
        var content = await _client.GetStringAsync(Url);
        var tblmoney_items = JsonConvert.DeserializeObject<List<TblMoney>>(content);

        _tblmoney_items = new ObservableCollection<TblMoney>(tblmoney_items);
        moneyListView.ItemsSource = _tblmoney_items;

        base.OnAppearing();
    }
}

Ниже приведен класс модели для tblMoney.

public partial class TblMoney
{
    public int Id { get; set; }
    public DateTime? RecordDate { get; set; }
    public string ItemDesc { get; set; }
    public int? AmountOut { get; set; }
    public int? SpentTypeId { get; set; }
    public int? PayMethodId { get; set; }

    public virtual TblSpentType SpentType { get; set; }
    public virtual TblPayMethod PayMethod { get; set; }
}

В виде списка на главной странице я хочу чтобы показать, наряду с другими столбцами tblMoney, столбцы PayMethodName и TypeDes c, каждый из которых хранится в tblPayMethod и tblSpentType, соответственно.

Мои вопросы следующие:

  1. Есть ли способ создать запрос SQL, который извлекает записи из всех трех таблиц, используя INNER JOIN, и назначает запрос SQL источнику данных (свойство ItemsSource) представления списка?
  2. Как создать класс модели, представляющий все столбцы из всех трех таблиц? В настоящее время у меня есть только класс TblMoney, который представляет только tblMoney. Нужно ли вам создать такой класс модели, представляющий все столбцы трех таблиц, и объявить ObservableCollection типа класса модели в классе MainPage, чтобы отображать элементы коллекции в представлении списка?
  3. Насколько мне известно , Entity Framework Core (с которым я не знаком, но как-то предполагаю, что он может быть полезен для вышеуказанных задач) находится между приложением и базой данных. Следует ли мне использовать Entity Framework для выполнения вышеуказанных задач? Если да, то как?

Я задаю эти вопросы перед прохождением серии онлайн-курсов по Entity Framework. Я не уверен на 100%, что это научит меня необходимым знаниям, чтобы делать все вышеперечисленное. Пожалуйста помоги. Заранее большое спасибо.

...