使用SQLite时,有一种方法可以在从数据库实例化对象时立即为属性分配值?

问题描述 投票:1回答:1

说我在SQLite数据库上有两个表,学生

人员具有IdName列。学生有IdPersonId列。 PersonId显然链接到Person表中的ID列。

因此,在我的应用程序中,我为每个表分别有一个类,[Student

学生班级将具有以下属性:

public class Student { Int Id { get; set; }; Int PersonId { get; set; }; Person person { get; set; }; }

然后我有了我的SQLite连接,以便从数据库中获取数据:

SQLiteConnection con = new SQLiteConnection(DBLocation); var students = con.Table<Student>().ToList();

这将同时填充每个对象的“ Int Id”和“ Int PersonId”属性,而不是“ Person person”属性。

[我的问题是,有没有一种方法可以同时分配此属性(Person人)其各自的值(其Id == Student.PersonId的Person对象)?或这样做的最佳做法是什么?

谢谢

c# sqlite android-sqlite system.data.sqlite sqlite-net
1个回答
0
投票
如果您使用ORM之类的EntityFrameworkCore,则可以实现此目的。学生班:

public class Student { Int Id { get; set; }; Int PersonId { get; set; }; Person person { get; set; }; }

人员分类:

public class Person { Int Id { get; set; }; Student Student { get; set; }; }

然后使用它:

var person = new Person { Id = 1, Student = new Student { Id = 1 } } dbContext.Persons.Add(person); dbContext.SaveChanges();

使用代码之前,需要做一些配置,例如创建代表内存中数据库的DbContext子类,您可以在此处学习EF Core:https://docs.microsoft.com/en-us/ef/core/get-started/?tabs=netcore-cli
© www.soinside.com 2019 - 2024. All rights reserved.