我有一个Web API 2服务,它有一个连接到实体框架的Breeze Controller。它从我的数据库中的表中获取几个EntityTypes(如Employee,UserConfiguration,Shipment等)
一切都很好。
但现在我想制作一个“自定义”的EntityType。一个叫做用户。我的数据库中实际上没有User表。我使用几个不同的来源来创建用户的实例。 (员工表,用户配置表和服务呼叫)
当我调用GetCurrentUser
方法时,数据会正确返回给客户端。
但是我有这个设置允许在breeze创建对象时调用我的构造函数:
metadataStore.registerEntityTypeCtor('User', Entities.User, this.setupEntity);
但构造函数永远不会被调用。
如何让它看到User
实体?
注意:如果可能的话,我宁愿在我的Web API代码中设置它,而不是在我的JavaScript / TypeScript中。
如果它是相关的,这是我的User类的一部分:
[DataContract]
public class User
{
public User(Employee employee, ApplicationPermission permissions,
UserConfiguration userConfiguration)
{
EmployeeId = employee.EmployeeId;
LanId = employee.LanId;
FirstName = employee.FirstName;
LastName = employee.LastName;
UserPermissions = new List<UserPermission>();
UserConfiguration = userConfiguration;
}
[DataMember]
int? EmployeeId { get; set; }
[DataMember]
string FirstName { get; set; }
[DataMember]
string LastName { get; set; }
[DataMember]
List<UserPermission> UserPermissions { get; set; }
[DataMember]
private UserConfiguration UserConfiguration { get; set; }
}
答案 0 :(得分:0)
我能够通过将自定义类添加到Entity Framework模型来实现此功能(即使它没有表)。我认为使用代码模型会更容易。我不知道它是否适用于设计模型(edmx)。
这个链接让我开始了: