fri*_*iwi 0 c# visual-studio-2010 asp.net-mvc-2
所有的拳头,我是仿制药的新手.我有以下代码的问题:
namespace YvanSoftware_V5.Models
{
public interface ISession : IDisposable
{
void CommitChanges();
Db4objects.Db4o.IObjectContainer Container { get; }
void Delete(System.Linq.Expressions.Expression<Func< T, bool>> expression);
void Delete(object item);
void DeleteAll();
void Dispose();
T Single(System.Linq.Expressions.Expression<Func< T, bool>> expression);
System.Linq.IQueryable All();
void Save(T item);
}
}
Run Code Online (Sandbox Code Playgroud)
我得到以下编译错误,但我不知道在这种情况下它意味着什么.
找不到类型或命名空间名称"T"(您是否缺少using指令或程序集引用?)
我从http://www.itslet.nl/?p=125获得了此代码.
谢谢您的帮助,
伊凡
这是因为T没有定义.编译器将尝试查找名称T不存在的类型.尝试将您的界面签名更改为:
public interface ISession<T> : IDisposable
Run Code Online (Sandbox Code Playgroud)
如果您不希望整个界面是通用的,可以添加到每个方法,例如:
Save<T>(T item)
Run Code Online (Sandbox Code Playgroud)
实际上,这就是这段代码的作者所做的,请查看Db4oSession您提供的链接中的实现类.正确的接口定义应该是:
public interface ISession : IDisposable
{
void CommitChanges();
Db4objects.Db4o.IObjectContainer Container { get; }
void Delete<T>(System.Linq.Expressions.Expression<Func< T, bool>> expression);
void Delete(object item);
void DeleteAll();
void Dispose();
T Single<T>(System.Linq.Expressions.Expression<Func< T, bool>> expression);
System.Linq.IQueryable All();
void Save<T>(T item);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
244 次 |
| 最近记录: |