分享以下代码请任何人告诉错误是什么
try
{
OrganoCollection = new ObservableCollection<HRM_Organogram>();
foreach (var jobTypeDef in LobjWsHrmOeLinking.GetUnOccupiedRecordSearch())
{
OrganoCollection.Add(jobTypeDef);
}
}
catch (Exception ex)
{
ApplicationClass.Message(ex.Message, "Error", MessageType.Error);
}
并且函数的定义在下面给出了这个函数通过wcf服务
public List<HRM_Organogram> GetUnOccupiedRecordSearch()
{
List<HRM_Organogram> p_objMaster = new List<HRM_Organogram>();
try
{
using (var context = new CMS_ERPEntities())
{
context.ContextOptions.LazyLoadingEnabled = false;
var l_objMaster = (from OG in context.HRM_Organogram
join OE in context.HRM_OELinking
on OG.OrganoID equals OE.OrganoID
where OE.FinalizeStatus == true
select OG.OrganoID).ToList();
p_objMaster = (from OG in context.HRM_Organogram
where !l_objMaster.Contains(OG.OrganoID)
&& OG.Isactive==true
select OG).ToList();
}
}
catch (Exception ex)
{
throw ex;
}
return p_objMaster;
}
错误是:
参数类型CMS_ERPClient.Service.HRM_OeLinking.HRM_Organogram是 不适用于CMS_ERPClient.Service.HRM_OrganGram.HRM_OrganGram
答案 0 :(得分:1)
有多个名为HRM_Organogram
的类型,一个在命名空间CMSERPClient_Service.HRM_OElinking
中,一个在命名空间CMS_ERPClientService.HRMORganogram
中。您正在尝试将后者添加到前者的集合中。查看您的using
声明。
如果我可以说,你的命名空间和类型名称太糟糕了!重构它们以获得更具描述性和独特性的名称,您将获得更加愉快的编码体验!
我的猜测是一个是DTO类型,一个是模型类型,你将有一个映射器在某处进行转换。我也猜测这句话对你来说并不意味着很多 - 试着看看这些类型在其他地方是如何使用的,并寻找两个都有using
个语句并将一个转换为另一个的代码。