Entity Framework 6.44 的这段代码在哪里执行?
Where is this code with Entity Framework 6.44 executed?
我有 属性 A
和 ICollection<A>
如果我然后做一个像 (T is A)
这样的别名
public virtual T Children
{
get
{
return ICollection<T>;
}
set
{
ICollection<T> = value;
}
}
在哪里执行实体查找?在代码中还是在 SQL 服务器中? EF 如何看待这个解决方案?
补充:问题...我有一个使用了 10 年的遗留系统,带有 nHibernate(ver 1.X) 和 c#。它在链中继承,将 类 写入数据库并带有一定的标记。每个人都继承了一组基础属性,有些具有子/父关系(来自遗留代码)
public abstract class GroundpropertiesTreeBaseEntity<T> : GroundpropertiesEntity
{
[JsonIgnore]
public virtual T Parent { get; set; }
public virtual IList<T> Children { get; set; }
}
如果我在数据库中查看已生成的内容,每个对象都有其自身实体的 parentID。
但如果我在 EF 中尝试此操作,问题将是如何命名 T 父外键。它希望它是 T 类型,然后是 _Id,而不是其他任何类型。你可以为此写别名,但它不会解决 Id 问题,因为你不能写 [Foreignkey(GetType(T)+"_Id"]。如果我不能得到一个解决方案来使这项工作必须真的是一些非常疯狂的解决方案,我宁愿不这样做,因为我会重写整个系统,因为有很多方法使用这种语法 类.
我希望这能解决这个问题。
我通过在每个 class 中编写 [Foreignkey("ThegenericKeyName")] 解决了这个问题。处理通用基础class不是一个好的或漂亮的解决方案,但它解决了问题。
继承属性foreignkey class然后将_Id添加到它所在的属性的名称然后将其发送到foreignkey属性baseclass name 属性.但是我没时间所以我选择了第一个解决方案。
我有 属性 A
和 ICollection<A>
如果我然后做一个像 (T is A)
public virtual T Children
{
get
{
return ICollection<T>;
}
set
{
ICollection<T> = value;
}
}
在哪里执行实体查找?在代码中还是在 SQL 服务器中? EF 如何看待这个解决方案?
补充:问题...我有一个使用了 10 年的遗留系统,带有 nHibernate(ver 1.X) 和 c#。它在链中继承,将 类 写入数据库并带有一定的标记。每个人都继承了一组基础属性,有些具有子/父关系(来自遗留代码)
public abstract class GroundpropertiesTreeBaseEntity<T> : GroundpropertiesEntity
{
[JsonIgnore]
public virtual T Parent { get; set; }
public virtual IList<T> Children { get; set; }
}
如果我在数据库中查看已生成的内容,每个对象都有其自身实体的 parentID。
但如果我在 EF 中尝试此操作,问题将是如何命名 T 父外键。它希望它是 T 类型,然后是 _Id,而不是其他任何类型。你可以为此写别名,但它不会解决 Id 问题,因为你不能写 [Foreignkey(GetType(T)+"_Id"]。如果我不能得到一个解决方案来使这项工作必须真的是一些非常疯狂的解决方案,我宁愿不这样做,因为我会重写整个系统,因为有很多方法使用这种语法 类.
我希望这能解决这个问题。
我通过在每个 class 中编写 [Foreignkey("ThegenericKeyName")] 解决了这个问题。处理通用基础class不是一个好的或漂亮的解决方案,但它解决了问题。
继承属性foreignkey class然后将_Id添加到它所在的属性的名称然后将其发送到foreignkey属性baseclass name 属性.但是我没时间所以我选择了第一个解决方案。