自我引用实体和插入顺序 | 使用实体框架代码优先
我有两个看起来像这样的实体: public class AssetSession { [Key] public Guid Id { get; set; } public string RoomNumber { get; set; } public Contact Contact { get; set; } public virtual List Assets { get; set; } } public class Asset { [Key] public Guid Id { get; set; } public Guid? ParentId { get; set; } [ForeignKey("ParentId")] public Asset Parent { get; set; } public string Barcode { get; set; } public string Seria
6 2024-04-21
编程技术问答社区
EntityFramework代码 第一个自引用的一对一(1:1)关系映射-无法确定主端
我有这个课: public class Message { public long Id { get; set; } public string Subject { get; set; } public string Message { get; set; } public virtual Message ParentMessage { get; set; } public virtual Message ChildMessage { get; set; } //... } 使用EntityFramework Code First Add-Migration给我消息:Unable to determine the principal end of an association between the types... 我无法使用[Required]属性,因为该线程中的第一个消息将没有父母,该线程中的最后一条消息将没
4 2024-04-21
编程技术问答社区
如何使用Entity Framework Code First定义一个一对一的自我引用
我想在我的实体上实现版本 .每个实体都有对下一个版本的可选参考(最新版本将是null),并且对先前版本的可选参考(第一个版本将是null).我首先使用实体​​框架6,代码.我尝试了以下模型和ModelBuilder语句(以及许多变体). public class Stuff { public int StuffId { get; set; } [ForeignKey("NextVersion")] public int? NextVersionId { get; set; } [InverseProperty("PreviousVersion")] public virtual Stuff NextVersion { get; set; } public virtual Stuff PreviousVersion { get; set; } } modelBuilder.Entity().HasOptional(t
4 2024-04-20
编程技术问答社区
aspnet核心实体框架7自我参照的 "工作 "1对多表
我有一个包含作业的"工作"表.事实是,工作并不总是一开始完成..您可以有很多访问的工作.我打算将其表示为另一个工作,但通过自我引用linkID链接到原始作业. 我使用Fluent API在表示此方面遇到困难.这是一对一的关系.一项工作可能有很多访问,因此Linkid的观点可以回到原始工作.链接ID将返回到原始作业ID.它也是可选的,因为大多数工作可能一次完成. 我已经寻找了这个,但是很难将其他示例转到此示例,因为其中大部分是一对一的,而我的工作表是: using System; namespace JobsLedger.Model.Entities { public class Job : IEntityBase { public int Id { get; set; } public string Model { get; set; } public string Serial { get; s
8 2024-04-16
编程技术问答社区
反射性类型参数约束。 X<T>,其中T : X<T> - 有没有更简单的选择?
每隔一段时间,我都会通过添加自我引用("反射")类型参数约束来使一个简单的接口更加复杂.例如,我可能会转动: interface ICloneable { ICloneable Clone(); } class Sheep : ICloneable { ICloneable Clone() { … } } //^^^^^^^^^^ Sheep dolly = new Sheep().Clone() as Sheep; //^^^^^^^^ 进入: interface ICloneable where TImpl : ICloneable { TImpl Clone(); } class Sheep : ICloneable { Sheep Clone() { … } } //^^^^^ Sheep dolly = new She
10 2024-04-13
编程技术问答社区
C# 通用自引用声明
我一直在阅读Albaharis的" C#5.0",但我在仿制药部分中遇到了这一点,据说这是合法的: class Bar where T : Bar { ... } ,这对我来说没什么意义,尽管我仔细阅读了整章.我什至不明白一点. 有人可以用一些可以理解的命名解释,例如: class Person where T : Person { ... } 和一个现实世界的应用程序方案,此用法适当且有用? 解决方案 这意味着T必须从Person中继承. 这是在基类中创建特定于类型的方法或属性或参数的典型方法,特定于实际后代. 例如: public abstract class Base where T : Base, new() { public static T Create() { var instance = new T(); instance.Conf
2 2024-04-12
编程技术问答社区
为什么我们要在自指结构中使用指针?
为什么我们在自指的结构中使用指针?是否强制性?如果没有,我们将指针指向结构与正常结构定义的指针有什么优势? ? typedef struct _Struct { struct _Struct* next; // do we really need this pointer? } Struct; 解决方案 您不能在结构定义中使用struct _Struct类型成员变量,因为它必须是完整的类型.但是struct _Struct直到满足声明的}才能完成. 对于指针,我们可以这样做,因为指针的尺寸是相同的,无论是指向完整类型还是不完整的指针 - 因此,当编译器正在阅读它们时,它可以决定其大小. (与自身提及的情况不同). 它必须是指针而不是结构本身,因为该类型尚未完成 - 尚不知道它的大小是什么. 支持我所说的话 - 来自 结构或联合应不包含不完整或功能类型 的成员本身的实例,但可能包含指向自身实例的指针),除了具有多个命名成员的结构的最后一个成员可能具有
12 2024-04-07
编程技术问答社区
在ASP.NET MVC 3中使用Entity Framework的自引用模型
我有一个类别类,它可以将其自身(仅一个级别提及)作为父类别. 使用实体框架使用DBContext检索数据时,未加载父关系.我该如何实现这一目标? 这是班级 public class Category { [Key] public int CategoryID { get; set; } [Display(Name="Category Name")] public string CategoryName { get; set; } public int ParentCategoryID { get; set; } public virtual Category ParentCategory { get; set; } } 当我使用dbContext检索所有类别时,parentscategory为null b/c,它没有加入具有相同ID的另一个类别类别. 谁能告诉我如何更改db.category.toli
0 2024-03-15
编程技术问答社区
实体框架......自引用表......获取深度=x的记录?
我正在成功使用实体框架中的自引用表. 但是我不知道如何获得所需深度的记录? 这应该是什么逻辑? 模型: public class FamilyLabel { public FamilyLabel() { this.Children = new Collection(); this.Families = new Collection(); } [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int FamilyLabelId { get; set; } public string FamilyLabelName { get; set; } public virtual FamilyLabel Parent { get; set; } pu
6 2024-03-10
编程技术问答社区
从自引用数组转换为树状嵌套数组
我使用 我有这样的自我参考表的数组: var obj = [ {id:1,label:"Animal"}, {id:2,label:"Vigitable"}, {id:3,label:"Cats",parent:1}, {id:4,label:"black cat",parent:3}, {id:5,label:"orange",parent:2}, ]; 我想将其转换为这样嵌套: var convrted = [ {id:1,label:"Animal",children[ {id:3,label:"Cats",parent:1,children[{id:4,label:"black cat",parent:3}]} ]}, {id:2,label:"Vigitable",children[ {
14 2024-03-06
编程技术问答社区
自我参照清单的用途
我知道可以在python等语言中创建一个自我引用列表: >>> my_list = [1,2] >>> my_list.append(my_list) >>> print my_list [1,2,[...]] >>> print my_list[0] 1 >>> print my_list[2] [1,2,[...]] 哪种算法受益于自我参考列表?我想不出一个. 谢谢. 解决方案 自我引用列表,一般来说,在使用数据结构表示图时可能会引起循环数据结构. 例如,考虑图形的这种幼稚表示:每个节点是原子值,或者是链接到的节点的列表.圆圈可能会导致列表包含包含列表的另一个列表.一个自圈,即从节点到自身的边缘会导致自我引用列表. 其他解决方案 大多数递归问题定义使用某种自我拒绝对象或具有自指定定义的数据. 我会添加Wikipedia链接,因为它提供了一个很好的读数: so 上的其他人 什么是递归,我什么时候应该使用它? 递归集与递归功能 了
12 2024-01-22
编程技术问答社区
工作表函数中的单元格、列和行的自我引用
在Excel中的工作表函数中,您如何自我参考单元格,列或行? 解决方案 其中F13是您需要参考的单元格: =CELL("Row",F13) yields 13; its row number =CELL("Col",F13) yields 6; its column number; =SUBSTITUTE(ADDRESS(1,COLUMN(F13)*1,4),"1","") yields F; its column letter 其他解决方案 对于一个单元格自我参考本身: INDIRECT(ADDRESS(ROW(), COLUMN())) 用于自我参考的单元格: INDIRECT(ADDRESS(1,COLUMN()) & ":" & ADDRESS(65536, COLUMN())) 对于一个单元格进行自我参考的行: INDIRECT(ADDRESS(ROW(),1) & ":" & ADDRESS(ROW(),256)) o
16 2023-12-12
编程技术问答社区
如何获取执行当前VIMScript的路径
在我的vim插件中,我有两个文件: myplugin/plugin.vim myplugin/plugin_helpers.py 我想从plugin.vim导入plugin_helpers(使用vim python支持),所以我相信我首先需要将插件的目录放在python的sys.path上. 我如何(在vimscript中)获取当前执行脚本的路径?在Python中,这是__file__.在Ruby中,它是__FILE__.我找不到通过谷歌搜索的VIM类似的东西,可以做到吗? 注意:我不是在寻找当前编辑的 file("%:P"和朋友). 解决方案 " Relative path of script file: let s:path = expand('') " Absolute path of script file: let s:path = expand(':p') " Absolute path of script fil
24 2023-11-19
编程技术问答社区
在C++中,如何制作一个可以包含相同变量的向量的变体?
i试图制作一个可以包含相同变体向量的std ::变体: class ScriptParameter; using ScriptParameter = std::variant >; 我正在获得脚本参数重新定义.它认为这可能是因为不能向前声明模板参数? 是否有一种方法可以实现一个也可以包含相同键入变体数组的变体? 解决方案 由于向前声明说ScriptParameter是一类,因此您不能使用using别名.但是,这里没有任何本质上的错误,因为vector只是指针,没有真正的循环依赖性. 您可以使用继承: class ScriptParameter; class ScriptParameter : public std::variant
20 2023-11-17
编程技术问答社区
在静态成员中未定义对类静态成员的引用
我正在创建一个链接列表,其中c ++中的自我参考类别,我想拥有一个名为" startpointer"的类型项目的静态指针(项目是类名称),以便当我称我的静态成员函数为" free" ,它可以使用item :: startpointer释放内存,但我会遇到错误(在代码后显示).请帮助, class Item { public: std::string name; int row,column; int fileType; Item *ptr; static Item *startPointer; void setNextPointer(Item* ptr) { ptr=ptr; } Item *getNextPointer() { return ptr; } static void free() { Item *p,*
22 2023-11-06
编程技术问答社区
自指型
什么类型T可以编译以下代码? T f(){ return &f; } 我更喜欢C答案,但是我将问题标记为C ++,以防使用模板有一个答案. 解决方案 我希望这不是作弊(仅C ++): class T { private: T (*_func)(); public: T(T (*func)()) : _func(func) {} T operator()() { return *this; } }; T f() { return &f; } int main() { f()()()()()()()(); } 其他解决方案 有趣的问题,但是没有可接受的C解决方案,我猜 为什么C不可能? (这里有些猜测) 返回t函数的类型是: T (*)(void) ; 期望定义t的 当然...但是,由于t是函数本身的类型,因此存在循环依赖性. 对于结构t,我们本可以: struc
6 2023-10-30
编程技术问答社区
构建自引用元组
在很多年前的论坛上看到对话从未得到解决之后,这使我想知道如何正确创建一个引用自己的元组.从技术上讲,这是一个非常糟糕的主意,因为组应该是不可变的.不变的物体如何包含自身?但是,这个问题与最佳实践无关,而是关于python的可能性的查询. import ctypes def self_reference(array, index): if not isinstance(array, tuple): raise TypeError('array must be a tuple') if not isinstance(index, int): raise TypeError('index must be an int') if not 0
12 2023-10-27
编程技术问答社区
如何使用子查询更新表
我有桌子,即"股票".该表中有成千上万的记录,我需要更新IT ACC.以下示例. (我使用SQL Server 2008) STOCKS.stock_name STOCKS.a_id A.001 0 B.001 0 C.001 20 A.002 0 B.002 10 A.003 0 执行代码后,我想拥有一个表: STOCKS.stock_name STOCKS.a_id A.001 20 B.001 20 C.001 20 A.002 10 B.002 10 A.003
32 2023-10-27
编程技术问答社区
什么是清空一个自引用的MySQL表的最佳方法?
我有一个带有递归parent_id的自指的mysql表: CREATE TABLE `recursive` ( `id` int(11) NOT NULL auto_increment, `parent_id` int(11) default NULL, `name` varchar(100) NOT NULL, PRIMARY KEY (`id`), KEY `data_categorysource_parent_id` (`parent_id`), CONSTRAINT `parent_id_refs_id_627b4293` FOREIGN KEY (`parent_id`) REFERENCES `data_categorysource` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 在测试期间,我想清空它,但截断失败: TRUNCATE `recursive` /* SQL Error
22 2023-10-26
编程技术问答社区
铁轨:自我参照联想
我的需求非常简单:我有一个提示表可以接收评论,也有评论以接收评论. 要检索存储在同一表(注释)中的每个注释,我为评论创建了另一个键:" inverse_comments". 我尝试使用自我递减关联使用一个评论表.一些资源似乎将不止一个桌子带入了与我的需求不同的彼此中.所以我提出了以下评论的建模: class Comment :inverse_comments, :source => :comment end 显然这里缺少一些东西,但我无法弄清楚. 有人可以启发我: 我需要采取哪些更改才能使模型起作用? 谢谢. 解决方案 我相信您应该使用 a>. 为此,您需要在comments表上添加commentable_i
22 2023-10-20
编程技术问答社区