В представлении списка моего приложения 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, соответственно.
Мои вопросы следующие:
- Есть ли способ создать запрос SQL, который извлекает записи из всех трех таблиц, используя INNER JOIN, и назначает запрос SQL источнику данных (свойство ItemsSource) представления списка?
- Как создать класс модели, представляющий все столбцы из всех трех таблиц? В настоящее время у меня есть только класс TblMoney, который представляет только tblMoney. Нужно ли вам создать такой класс модели, представляющий все столбцы трех таблиц, и объявить ObservableCollection типа класса модели в классе MainPage, чтобы отображать элементы коллекции в представлении списка?
- Насколько мне известно , Entity Framework Core (с которым я не знаком, но как-то предполагаю, что он может быть полезен для вышеуказанных задач) находится между приложением и базой данных. Следует ли мне использовать Entity Framework для выполнения вышеуказанных задач? Если да, то как?
Я задаю эти вопросы перед прохождением серии онлайн-курсов по Entity Framework. Я не уверен на 100%, что это научит меня необходимым знаниям, чтобы делать все вышеперечисленное. Пожалуйста помоги. Заранее большое спасибо.