我创建了一个带角度和微风的应用程序,并在几乎所有类中都使用了一个Enum(State)属性。现在我想用微风创建一个实体,但在“State”属性上出错。有没有办法可以在我的整个角度/微风应用程序中使用Enum类型?我该如何处理/调用Enum类型?
function createProductManufacturer(productId, manufacturerId) {
return this.manager.createEntity(model.entityNames.productManufacturer,
{
ProductId: productId,
ManufacturerId: manufacturerId,
State: State.Changed // here is the problem...
});
}
public class ProductManufacturer
{
public int Id { get; set; }
public int ProductId { get; set; }
public int ManufacturerId { get; set; }
public int DisplayOrder { get; set; }
public State State { get; set; }
public virtual Product Product { get; set; }
public virtual Manufacturer Manufacturer { get; set; }
}
public enum State
{
Normal = 0,
Changed = 1,
Deleted = 2
}
答案 0 :(得分:1)
到目前为止,您所做的只会显示一个Enum
State
名称,该名称与一个实体ProductManufacturer
相对应。即,在针对ProductManufacturer
执行实体查询时,您将获得每个ProductManufacturer
实体,并附带一个State
名称。
如果要发送enum
state
值,则需要将它们公开为查找对象。
在BreezeController
,添加HTTPGET
方法并添加enum
值:
[HttpGet]
public object Lookups()
{
var States = Enum.GetNames(typeof(State));// This is how you expose Enum values
var Countries = _contextProvider.Context.Countries; // This one is a database lookup table
return new {States, Countries };
}
然后,您可以使用典型的微风EntityQuery
查询您的查找(在应用程序启动时执行此操作。)