我知道它只允许类来设置它,但这有什么意义呢?
如何解决只读id的问题?
假设我有一个人类:
public class Person
{
public string Name { get; set; }
public int Id { get; private set; }
public int Age { get; set; }
}
这段代码在一个名为 Entities.dll
的库中,被GUI、BL和DAL使用。
GUI调用了BL:
List<Person> p = BL.PeopleBL.GetPeople();
为了举例,调用数据访问层(DAL):
...
while(dr.read())
{
returnPersonList.add( new Person{ Age=dr.GetInt32(1), Id=dr.GetInt32(0), Name=dr.GetString(2)})
}
...
当然,我不能这样做,因为Id是一个私有集合;
如何正确处理此问题?
我如何让BL/Dal设置Id,而不是在GUI上设置?
或者这甚至不是使用私有集合的正确方式吗?
我只想补充一下,这是您典型的数据库应用程序,其中pk是Id,不应更改(只能由BL / DAL更改)。