gpt4 book ai didi

entity-framework - 需要 Entityframework.HierarchyId 的示例

转载 作者:行者123 更新时间:2023-12-04 22:31:05 24 4
gpt4 key购买 nike

我在 NuGet 上找到了 EF.HierarchyId。 EF6.1.1现在好像支持了?

想知道是否有任何关于如何使用它的文档。
例如:

- 它适用于 edmx 吗?它可以导入带有hierarchyId 列的模型吗?

-一些 linq 示例?支持哪些命令?

谢谢你。

最佳答案

我刚刚安装了它,我认为它仍在开发中。
首先从数据库创建时。

The data type 'hierarchyid' is currently not supported for the target.NET Framework version; the column 'Id' in table 'dbo.Users' wasexcluded.

The column 'Id' on the table/view 'dbo.Users' was excluded, and is akey column. The table/view has been excluded. Please fix the entityin the schema file, and uncomment.


首先从代码创建时。
public class AppContext : DbContext
{
public DbSet<User> Users { get; set; }
}
public class User
{
public HierarchyId Id { get; set; }
public string Name { get; set; }
}
它起作用了,成功创建了数据库和表,但是一次添加多个对象会引发错误。
using (var db = new AppContext())
{
db.Users.Add(new User { Id = HierarchyId.Parse("/"), Name = "President" });
// Working.
db.SaveChanges();

db.Users.Add(new User { Id = HierarchyId.Parse("/1/"), Name = "VP 1" });
db.Users.Add(new User { Id = HierarchyId.Parse("/2/"), Name = "VP 2" });
db.Users.Add(new User { Id = HierarchyId.Parse("/3/"), Name = "VP 3" });
// ArgumentException "At least one object must implement IComparable."
db.SaveChanges();
}
并且按键查找不起作用。
using (var db = new AppContext())
{
var id = HierarchyId.Parse("/");
var user1 = db.Users.Find(id); // null
var user2 = db.Users.FirstOrDefault(u => u.Id == id); // null
var user3 = db.Users.FirstOrDefault(u => HierarchyId.Compare(u.Id, id) == 0); // null
var user4 = db.Users.AsNoTracking().ToArray()
.FirstOrDefault(u => u.Id == id); //not null
var user5 = db.Users.AsNoTracking().ToArray()
.FirstOrDefault(u => HierarchyId.Compare(u.Id, id) == 0); //not null
}

关于entity-framework - 需要 Entityframework.HierarchyId 的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25195890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com