C# 中用于 SQLCE 外键的功能
本文关键字:功能 SQLCE 用于 | 更新日期: 2023-09-27 17:56:38
我知道如何进行SQL查询以添加外键,连接到数据库并在C#中获取数据等等。但是在谷歌上搜索了很长时间后,我在 C# 中找不到任何与外键相关的功能(或类、方法、API 等)。
当我在 Rails 中时,如果两个表有关系,我可以通过 Teacher[0] 通过父表轻松访问子表。类.最后 .但是这些方法似乎在 C# 中缺失?我说的对吗?
我正在使用C#,SQLCE和WPF。
我有两个具有一对一关系的表。但是包括引用键在内的所有数据都是手动插入的(例如,这一行,插入"1",该行插入"5"等),要在子表中查找与父表 ID 对应的行,我只需要在 C# 中做一个 if 语句。
所以基本上外键对我来说只是另一个 int 列。我不明白引用的实际作用,还是只是一个命名约定?只是为了让代码的读者看到引用并重新识别存在关系,但外键实际上并没有实质性地做任何事情?
当我在 Rails 中时,如果两个表有关系,我可以通过 Teacher[0] 通过父表轻松访问子表。Classes.Last,但是这些方法似乎在 C# 中缺失?
你可以用实体框架和许多其他ORM做类似的事情。
所以基本上外键对我来说只是另一个整数列。只是为了让代码的读者看到引用并重新识别存在关系,但外键实际上并没有实质性地做任何事情?
正确 - 离开数据库后,外键的值将失去意义。相反,正常的是具有嵌套对象。例如,您可以有一个可以包含地址对象的 Customer 对象。Address 对象也可以随身携带其外键值,但通常不会在 C# 代码中使用它(除非您对它执行类似 LINQ 查询的操作) - 您将在返回到数据库后使用外键值。
外键表示域模型中对象之间的关系。它强化了完整性。
(在某些数据库中,外键也可以加快查询速度,因为查询优化器能够利用此信息)