我试图做一些应该是真正简单的事情,但我得到的错误我不知道如何纠正。另外,我甚至不知道我是否以“正确”的方式做事。有问题在各层之间传递对象
我有3个实体。我的第一个实体叫做比尔,这是我的主要实体。另外两个是重复和类型。 Bill具有指向其各自主键的外键(即TypeId)。 “类型”和“重复”类似。他们有他们的Id和描述。
我试图用EF和LINQ to实体做:获取所有的账单与比尔的所有属性,但代替TYPEID,我想TYPEDESC。
这是一个包含3个项目的N层解决方案 到目前为止,我有我的数据层,我打电话模型,业务层我打电话BLL和我的演讲后我打电话给GUI。
namespace BillApp.Model
{
public class BillModel
{
public List<BillType> GetAllBills()
{
using (BillsEntities be = new BillsEntities())
{
var results = from o in be.Bills
.Include("Type")
.Include("Repeat")
select new
{
BillId = o.BillId,
Name = o.Name,
URL = o.URL,
PaymentAmount = o.PaymentAmount,
Balance = o.Balance,
DueDate = o.DueDate,
TypeDesc = o.Type.TypeDesc,
RepeatDesc = o.Repeat.RepeatDesc,
Username = o.UserName
};
return results.ToList();
}
}
}
public class BillType
{
#region Properties
public int BillId { get; set; }
public string Name { get; set; }
public string URL { get; set; }
public decimal PaymentAmount { get; set; }
public decimal Balance { get; set; }
public DateTime DueDate { get; set; }
public string TypeDesc { get; set; }
public string RepeatDesc { get; set; }
public string Username { get; set; }
#endregion
}
}
结果返回一个错误无法隐式转换类型System.Linq.IQueryable<AnonymousType#1>
到System.Collections.Generic.List<BillApp.Model.BillType>
接下来,我尝试将对象传递给我的BLL与此代码。
namespace BillApp.BLL
{
public class BillBLL
{
public List<BillType> GetAllBills()
{
BillModel b = new BillModel();
return b.GetAllBills();
}
}
}
但BillType有一个错误:类型或命名空间名称“BillType”找不到(是否缺少using指令或程序集引用?)
我缺少什么?我能做些什么更好?
对不起,我在工作时脱掉了.ToList()。添加它不会更改错误消息。另外,我有一个使用BillApp.Model语句,它在参考中。 – kyle
另外,'select new {}'代码创建一个匿名类型的对象。应该是'选择新的BillType {}'。 – Jacob
@Jacob,我也发现了这个错误,我相应地编辑了我的答案。 –