具有类关系问题的亚音速3外键

时间:2010-02-25 22:16:49

标签: c# asp.net subsonic3

我在课堂上使用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'。

任何人都有任何想法或任何事情来帮助我吗?

非常感谢

2 个答案:

答案 0 :(得分:0)

你的一个列可以为空,看起来如此。去查看生成的类,看看它是哪一个,或者查看数据库模式。

如果它不需要是可空的,那么只需从列中删除它并重新运行.tt文件。

答案 1 :(得分:0)

安德鲁,

这对我有用我只是将NotNull FLAG放在数据库的INT字段中,它为我解决了这个BUG

非常感谢