所以,我是jugglin与本教程,因为我需要优化一些查询.但是,我意识到在一对多关系中,EF倾向于首先检索所有相关行,并在内存中进行进一步查询 - 效率有点低,并且可能会将您的内存咀嚼到最后一位.是否有任何方法(或最佳实践)在EF中挂钩一对多(或许多对多)关系,返回IQueryable而不是ICollection?
基本EF一对多
public class parent
{
[Key]
public int ParentId;
public string Name;
public virtual ICollection<Child> Childs;
}
public class Child
{
[Key]
public int ChildId;
public string Name;
public int ParentId;
[ForeignKey("ParentId")]
Public Parent Parent;
}
Run Code Online (Sandbox Code Playgroud)
好吧,作为一些背景信息,我来自Laravel.也许只是我期待C#.Net上不存在.但是,在内存中记录3000+记录的Linq并不好玩,特别是如果你只需要很少的话.我错过了什么吗?我已经阅读了这个问题,它只是简单地.Where通过id来检索关系,因为它会分散(并且不安全)ORM的定义 - 使密钥管理集中化,上层不需要知道什么定义了对象的关系.拜托,赐教.
编辑 谢谢谁投了这个投票.对此,我真的非常感激.干杯.
我在 .NET Core 上使用一些简单的 C# 代码来查看 Azure Functions 的执行情况。
\n\n用例是这样的:将 1000 万个 int 值添加到 ArrayList 作为 Azure 函数的一部分,并使用设置为 1 分钟的时间触发器来调用该函数。(我知道 ArrayList 已过时,不再使用,但我只是使用它来在堆上分配大量空间)。\n因此该函数的 C# 代码是这样的:
\n\nusing System.Collections;\n\npublic static void Run(TimerInfo myTimer, ILogger log)\n{\n ArrayList numbers = new ArrayList();\n Random random = new Random(1);\n int noNumbers = 10000000;\n for(int i=0;i<noNumbers;i++) {\n numbers.Add(random.Next(10));\n }\n\n log.LogInformation($"Created an ArrayList of {numbers.Count} elements");\n log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我检查了平台设置,发现这是 32 位的(我假设这是指 .NET Core 运行时为 32 位):
\n\n
在“桌面”环境中运行相同的示例代码,针对 …
我到处搜索,但找不到如何做到这一点,我被卡住了。我没有使用 JSON 文件的经验,因此对勺子喂食和解释表示赞赏。
我在这里有这个 JSON 文本用于测试:
{
"id":"4566e69fc90748ee8d71d7ba5aa00d20",
"properties":
[
{
"name":"textures",
"value":"eyJ0aW1lc3RhbXAiOjE0ODI4ODAxNDMwNzYsInByb2ZpbGVJZCI6IjQ1NjZlNjlmYzkwNzQ4ZWU4ZDcxZDdiYTVhYTAwZDIwIiwicHJvZmlsZU5hbWUiOiJUaGlua29mZGVhdGgiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTNlODFiOWUxOWFiMWVmMTdhOTBjMGFhNGUxMDg1ZmMxM2NkNDdjZWQ1YTdhMWE0OTI4MDNiMzU2MWU0YTE1YiJ9LCJDQVBFIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjJiOWM1ZWE3NjNjODZmYzVjYWVhMzNkODJiMGZhNjVhN2MyMjhmZDMyMWJhNTQ3NjZlYTk1YTNkMGI5NzkzIn19fQ==",
},
],
"name":"Thinkofdeath",
}
Run Code Online (Sandbox Code Playgroud)
我目前有这个:
JsonElement playerProfile = new JsonParser().parse(jsonLine);
JsonObject jsonProfile = playerProfile.getAsJsonObject();
JsonArray properties = jsonProfile.getAsJsonArray("properties");
Run Code Online (Sandbox Code Playgroud)
哪个返回 [
[
{
"name":"textures",
"value":"eyJ0aW1lc3RhbXAiOjE0ODI4ODAxNDMwNzYsInByb2ZpbGVJZCI6IjQ1NjZlNjlmYzkwNzQ4ZWU4ZDcxZDdiYTVhYTAwZDIwIiwicHJvZmlsZU5hbWUiOiJUaGlua29mZGVhdGgiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTNlODFiOWUxOWFiMWVmMTdhOTBjMGFhNGUxMDg1ZmMxM2NkNDdjZWQ1YTdhMWE0OTI4MDNiMzU2MWU0YTE1YiJ9LCJDQVBFIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjJiOWM1ZWE3NjNjODZmYzVjYWVhMzNkODJiMGZhNjVhN2MyMjhmZDMyMWJhNTQ3NjZlYTk1YTNkMGI5NzkzIn19fQ==",
},
]
Run Code Online (Sandbox Code Playgroud)
当然。我如何从这个 JsonArray 中获取“值”?注意我使用的是 Google 的 API,Gson
Where should partial templates files be placed in Phalcon? Is there any config for that?