Acr*_*gma 9 c# entity-framework dbcontext
public interface IDatabaseContext : IDisposable {
IDbSet<MyEntity1> Entities1 { get; set; }
}
public class MyDbContext : DbContext, IDatabaseContext {
IDbSet<MyEntity1> Entities1 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
由于此处描述的错误无法编译:http://msdn.microsoft.com/en-Us/library/bb384253(v = vs.90).aspx
然而,由于界面显然是公开的,所以这没有任何意义.这可能是什么错误?
Mar*_*ell 23
然而,由于界面显然是公开的,所以这没有任何意义.这可能是什么错误?
不,不是.private
默认情况下,课程成员.这Entities1
是私人的:
public class MyDbContext : DbContext, IDatabaseContext {
IDbSet<MyEntity1> Entities1 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
请注意,这与interface
s 不同,其中所有内容都是,public
并且访问修饰符没有意义.所以:要么成为会员public
:
public class MyDbContext : DbContext, IDatabaseContext {
public IDbSet<MyEntity1> Entities1 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
或者做一个明确的接口实现:
public class MyDbContext : DbContext, IDatabaseContext {
IDbSet<MyEntity1> IDatabaseContext.Entities1 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在类中实现接口成员时,应该是public
请参阅:接口(C# 编程指南)
要实现接口成员,实现类的相应成员必须是公共的、非静态的,并且与接口成员具有相同的名称和签名。
public class MyDbContext : DbContext, IDatabaseContext {
public IDbSet<MyEntity1> Entities1 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
或者正如@Marc Gravell 在评论中所说的那样,您可以执行Explicit interface implementation,可以在此答案中找到更多信息
归档时间: |
|
查看次数: |
13795 次 |
最近记录: |