C# 转换变量时出错
当我尝试强制执行查询时,会出现错误。这是查询的代码:C# 转换变量时出错,c#,C#,当我尝试强制执行查询时,会出现错误。这是查询的代码: var query = (from article in db.V_CLIENT_PRIX where article.CLIENT == Current_Client_Id select new { ID = article.ID,
var query = (from article in db.V_CLIENT_PRIX
where article.CLIENT == Current_Client_Id
select new
{
ID = article.ID,
ARTICLE = article.Article,
REFERENCE = article.Reference,
REMISE = article.Remise,
PRIXVHT = article.PrixVHT,
CLIENT = article.CLIENT,
}
);
我是这样投的:
ConventionList articlelistconvention = new ConventionList();
articlelistconvention = (ConventionList)query;
这是我的型号:ConventionList
public class Commandelist
{
public string ARTICLE { get; set; }
public string CIN { get; set; }
public decimal STOCK { get; set; }
public string REFERENCE { get; set; }
public decimal PRIXVHT { get; set; }
public string IMAGE { get; set; }
public double QUANTITE { get; set; }
}
有人能帮我修一下吗?你可能来自一种带有duck类型的语言,比如Javascript;然而,在C#中,这是不可能的。通常,只有在接口和/或继承允许的情况下才能强制转换对象。您在Linq查询中创建的动态对象不会与您试图强制转换到的对象共享祖先 在您的特定代码示例中,有一个快速修复方法:
var query = (
from article in db.V_CLIENT_PRIX
where article.CLIENT == Current_Client_Id
select new ConventionList // < --- change here!!
{
ID = article.ID,
ARTICLE = article.Article,
REFERENCE = article.Reference,
REMISE = article.Remise,
PRIXVHT = article.PrixVHT,
CLIENT = article.CLIENT,
});
var查询=(
摘自db.V_CLIENT_PRIX中的文章
其中article.CLIENT==当前\u客户端\u Id
选择新约定列表/<---在此处更改!!
{
ID=article.ID,
第条,
参考文献=文章参考文献,
REMISE=文章。REMISE,
PRIXVHT=article.PRIXVHT,
CLIENT=article.CLIENT,
});
但是,要使其完全适用于您的场景,可能需要进行一些调整,因为您的问题对于动态对象、
约定列表
类和命令列表
类之间的差异/重叠不明确。您需要在选择中指定您的类型
命令
/约定
),除非您只是草率地粘贴了错误的代码供我们查看/找出)List
强制转换为另一种类型,如果泛型由于协方差而相关,IEnemurable可以工作var query = (
from article in db.V_CLIENT_PRIX
where article.CLIENT == Current_Client_Id
select new Convention()
{
ID = article.ID,
ARTICLE = article.Article,
REFERENCE = article.Reference,
REMISE = article.Remise,
PRIXVHT = article.PrixVHT,
CLIENT = article.CLIENT,
});
如果一个对象根本不是relatedConventionlist或Commandelist,则不能将其强制转换为另一个对象?此强制转换不起作用,但您可以实例化Commandelist的新实例并映射匹配的属性