当从DB中实例化一个对象时,是否有办法从关联的ID字段立即填充一个对象属性?

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

假设我的SQLite DB上有两张表。人物学生.

人有列 身份证名称.学生有列 身份证PersonId. PersonId 显然,这与 身份证 表中的列。

因此,在我的应用程序中,我为这些表各准备了一个类。人物学生.

学生类将有属性。

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

然后我有我的SQLite连接 从DB中获取我的数据。

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

这将填充每个对象上的 "Int Id "和 "Int PersonId "属性,但不是 "Person person "属性。

我的问题是,有没有办法同时将这个属性(Person人)的各自的值(一个Id == Student.PersonId的Person对象)赋值?或者这样做的最佳实践是什么?

谢谢你

c# sqlite sqlite-net
1个回答
1
投票

如果你使用EntityFrameworkCore这样的ORM,就可以实现这个功能.学生类。

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

Person类:

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.comen-usefcoreget -started?tabs=netcore -cli

© www.soinside.com 2019 - 2024. All rights reserved.