我在课堂上使用LINQ和亚音速来获取我的数据是下面的代码:
public IQueryable<Veiculo> SelecionaVeiculosSite()
{
return (from v in _db.Veiculos
where v.Ativo == true &&
v.Marca.Ativo == true &&
v.Modelo.Ativo == true
select v
);
}
你会在“v.Marca.Ativo == true”中看到一个区别,我在ActiveRecord的模板中进行了一次修改以获得a而不是IQueryable。我创建的方式是基于我的数据库的外键创建Classes关系。
这是在模板中修改的代码(生成):
public Marca Marca
{
get
{
var repo=OKMMySql.Marca.GetRepo();
return (from items in repo.GetAll()
where items.ID_Marca == _ID_Marca
select items).SingleOrDefault();
}
}
在代码中没关系,但是这个选择返回此执行时间错误:
二元运算符Equal不是 为类型定义 'System.Nullable`1 [System.Int32]'和 'System.Int32'。
任何人都有任何想法或任何事情来帮助我吗?
非常感谢
答案 0 :(得分:0)
你的一个列可以为空,看起来如此。去查看生成的类,看看它是哪一个,或者查看数据库模式。
如果它不需要是可空的,那么只需从列中删除它并重新运行.tt文件。
答案 1 :(得分:0)
安德鲁,
这对我有用我只是将NotNull FLAG放在数据库的INT字段中,它为我解决了这个BUG
非常感谢