gpt4 book ai didi

c# linq 在 tph 中获取数据库中项目的类型

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:04 27 4
gpt4 key购买 nike

我有一个 wpf 应用程序,其中包含一个首先使用实体​​框架代码制作的数据库。

我有一个类 Shoes.cs 和两个继承自鞋子的类:Canvas.csBoots.cs

对于映射,我使用了 tph 方法,所以我有一个带有鉴别器的 table 鞋,用于识别是 Canvas 还是 Boot

我必须在数据网格中显示我拥有的所有鞋子及其类型。我知道我不能直接查询鉴别器列,所以我试图做这样的事情

 var allShoes = (from shoes in db.Shoes
select shoes).ToList();

List<string> typeOfShoes = new List<string>();

foreach (Shoes pairShoes in allShoes)
{
if (pairShoes.GetType() == typeof(Canvas))
{
typeOfShoes .Add("Canvas");
}
else if (pairShoes.GetType() == typeof(Boots))
{
typeOfShoes .Add("Boots");
}
else
{
typeOfShoes .Add("Wrong");
}
}

我可以在我的数据网格中获取所有内容,但在列类型中仅显示“错误”。

如何获取鞋子的类型?

最佳答案

您目前正在向类 Shoes 询问它的类型,您应该向实例询问它的类型。此外你还应该使用is。此运算符检查对象是否与给定类型兼容,而不是依赖于确切的类型。

if (pairShoes is Canvas)
{
....

关于c# linq 在 tph 中获取数据库中项目的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34183583/

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