Entiti...">

"..." cannot implement an interface member because it is not public

public interface IDatabaseContext : IDisposable {

    IDbSet<MyEntity1> Entities1 { get; set; }

}

public class MyDbContext : DbContext, IDatabaseContext {

    IDbSet<MyEntity1> Entities1 { get; set; }

}

Unable to compile due to the error described here: http://msdn.microsoft.com/en-Us/library/bb384253(v=vs.90).aspx

However, this does not make sense, since the interface is obviously publicly available. What could be the mistake here?

+8
source share
5 answers

However, this does not make any difference, since the interface is obviously public. What could be a mistake here?

No, it is not. Participants privateby default class . This Entities1is private:

public class MyDbContext : DbContext, IDatabaseContext {    
    IDbSet<MyEntity1> Entities1 { get; set; }    
}

, interface s, public . : public:

public class MyDbContext : DbContext, IDatabaseContext {    
    public IDbSet<MyEntity1> Entities1 { get; set; }    
}

:

public class MyDbContext : DbContext, IDatabaseContext {    
    IDbSet<MyEntity1> IDatabaseContext.Entities1 { get; set; }    
}
+20

public

: ( #)

, , .

public class MyDbContext : DbContext, IDatabaseContext {

    public IDbSet<MyEntity1> Entities1 { get; set; }
}

@Marc Gravell , ,

+4

/ -

, ( ).

( MyDbContext).

0

, , . , .

0

. , .

-1

Source: https://habr.com/ru/post/1526970/


All Articles