我的Linq to sql里有个实体Category,含有属性Nullable<int> ParentId
我让Category实现一个接口IHaveParent
代码如下:
public interface IHaveParent
{
Nullable<int> ParentId
{
get;
set;
}
}
public partial class Category : IHaveParent
{}
public class TestRepository<TEntity> : RepositoryBase<TEntity>
where TEntity : class, IHaveParent
{
public void Test()
{
var items = GetAll().Where(it => it.ParentId == null);
// 这里会出现异常,base {System.SystemException} = {"不支持接口成员 IHaveParent.ParentId 的映射。"}
}
}
public class TestRepositoryFixture
{
[Fact]
public void Test()
{
TestService<Category> testService = new TestService<Category>();
testService.Test();
}
}
感觉你这个接口没有必要
看不懂你代码,GetAll 是啥来的?
在接口的 ParentID 上加上Column Attribute:
[Column.....]
ParentID{get;set;}
ParentId有映射到数据列上吗?
GetAll().Where(it =>! it.ParentId.HasValue);
Nullable<int> ParentId
{
get;
set;
}
改成
int? ParentId
{
get;
set;
}
试下