问题非常技术性,它深深地介于F#/ C#差异之间.我很可能错过了一些东西.如果您发现概念错误,请发表评论,我将更新问题.
让我们从C#世界开始吧.假设我有一个简单的业务对象,请调用它Person(但是,请记住,有100多个对象远比我们使用的业务领域中的对象复杂得多):
public class Person : IPerson
{
public int PersonId { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我使用DI/IOC,所以我从来没有实际传Person过来.相反,我总是使用一个接口(如上所述),称之为IPerson:
public interface IPerson
{
int PersonId { get; set; }
string Name { get; set; }
string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
业务要求是可以从数据库序列化/反序列化该人员.假设我选择使用Entity Framework,但实际的实现似乎与问题无关.此时我可以选择引入"数据库"相关类,例如EFPerson:
public class EFPerson : IPerson
{
public int PersonId { get; set; }
public string …Run Code Online (Sandbox Code Playgroud)