我使用的是SQLite浏览器和Dapper。如何将外键从一个表自动分配到另一个表?我正在尝试将课程对象的列保存到Course
表中。以及如何将Course
表列PersonID
分配给Person
表列Person ID
?
我的想法是传入一个PersonModel
对象和一个CourseModel
对象,并以某种方式使用Execute方法为course.PersonID
列赋值。但我不能让它起作用。
internal class Program
{
private static void Main(string[] args)
{
PersonModel person = new PersonModel("Jeff");
CourseModel course = new CourseModel("History");
DBAccess.SavePerson(person);
DBAccess.AddCourse(person, course);
Console.ReadLine();
}
}
public class PersonModel
{
public int PersonID { get; set; }
public string Name { get; set; }
public PersonModel(string name)
{
Name = name;
}
}
public class CourseModel
{
public int CourseID { get; set; }
public string CourseName { get; set; }
public int PersonID { get; set; }
public CourseModel(string name)
{
CourseName = name;
}
}
public class DBAccess
{
public static string LoadConnectionString(string id = "Default")
{
return ConfigurationManager.ConnectionStrings[id].ConnectionString;
}
public static void SavePerson(PersonModel person)
{
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
{
cnn.Execute("insert into Person (Name) values (@Name)", person);
}
}
public static void AddCourse(PersonModel person, CourseModel course)
{
// I want to log the vales of the course and somewhow assign the "person personid" to the "course personid" which is set as the foreign key in SQLite Browser.
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
{
cnn.Execute("insert into Course (CourseName) values (@CourseName)", course);
}
}
}
1条答案
按热度按时间gajydyqb1#
应该只是:
如果Course已经填充了其Person ID,则不需要通过该方法发送它,只需在上面的查询中使用它。