C# 保存对象模式-1到1关系-实体框架
我在使用EntityFramework的ASP.NETMVC5项目中工作。我对这些框架非常陌生 我有两个一对一关系的类: 第一类:地址 Meeting类负责这种关系,这意味着我已经编写了一个MeetingService类来处理简单的CRUD操作。以下是界面:C# 保存对象模式-1到1关系-实体框架,c#,asp.net-mvc,entity-framework,design-patterns,C#,Asp.net Mvc,Entity Framework,Design Patterns,我在使用EntityFramework的ASP.NETMVC5项目中工作。我对这些框架非常陌生 我有两个一对一关系的类: 第一类:地址 Meeting类负责这种关系,这意味着我已经编写了一个MeetingService类来处理简单的CRUD操作。以下是界面: public interface IMeetingService { IEnumerable<Meeting> GetMeetings(); IEnumerable<Meeting> GetMeeti
public interface IMeetingService
{
IEnumerable<Meeting> GetMeetings();
IEnumerable<Meeting> GetMeetings(int sellerId);
Meeting GetMeeting(int id);
void CreateMeeting(Meeting Meeting);
void EditMeeting(Meeting MeetingToEdit);
void DeleteMeeting(int id);
void SaveMeeting();
}
我的第一个赌注是在地址属性的设置器上添加某种触发器,并在每次修改其他字段时更新Lat/Lng,但感觉有点不对,我不想对我的域对象有任何依赖,即使我抽象了GoogleMaps接口
将反向地理编码逻辑放在MVC控制器中也感觉不正确。不需要解释
我想我应该把逻辑放在服务层,但我不知道如何正确地做到这一点,因为我只考虑会议对象而不是地址
谢谢 在编辑/创建级别,将消息发布到。编写总线,作为一个独立的应用程序,根据发布的消息更新地址坐标。(可选)处理属性以检查坐标和地址是否同步。
public class Meeting
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime Date { get; set; }
public virtual Address Address { get; set; }
}
public interface IMeetingService
{
IEnumerable<Meeting> GetMeetings();
IEnumerable<Meeting> GetMeetings(int sellerId);
Meeting GetMeeting(int id);
void CreateMeeting(Meeting Meeting);
void EditMeeting(Meeting MeetingToEdit);
void DeleteMeeting(int id);
void SaveMeeting();
}
static void UpdateAdressCoordinates(ref Address address);