无法找到属性:entityType上的Nome: [英] unable to locate property: Nome on entityType:
本文介绍了无法找到属性:entityType上的Nome:的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
无法找到属性:实体上的Nome类型:Modalidade:#CreditoImobiliarioBB.Model
unable to locate property: Nome on entityType: Modalidade:#CreditoImobiliarioBB.Model
但是此属性在类中!
不会生成对 / odata / modalidades
的请求,仅对 / odata / $ metadata
的请求。
But this property is in the class!
No request for /odata/modalidades
is generated, only a request for /odata/$metadata
.
public class Modalidade : INamedEntity
{
public int Id { get; set; }
[StringLength(80), Required]
public string Nome { get; set; }
}
配置
Configurations
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
var modelBuilder = new ODataConventionModelBuilder(config);
modelBuilder.EntitySet<Modalidade>("modalidades");
modelBuilder.Namespace = "CreditoImobiliarioBB.Model";
config.Routes.MapODataRoute(routeName: "odata", routePrefix: "odata", model: modelBuilder.GetEdmModel());
var jsonFormatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
var enumConverter = new StringEnumConverter();
jsonFormatter.SerializerSettings.Converters.Add(enumConverter);
var jqueryFormatter = config.Formatters.FirstOrDefault(x => x.GetType() == typeof(JQueryMvcFormUrlEncodedFormatter));
config.Formatters.Remove(config.Formatters.XmlFormatter);
config.Formatters.Remove(config.Formatters.FormUrlEncodedFormatter);
config.Formatters.Remove(jqueryFormatter);
config.Formatters.JsonFormatter.SerializerSettings.DateFormatHandling = DateFormatHandling.IsoDateFormat;
}
}
public static class BreezeWebApiConfig
{
public static void RegisterBreezePreStart()
{
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
name: "BreezeApi"
, routeTemplate: "api/{controller}/{action}"
, defaults: new { action = "Get" }
);
}
}
CoffeScript
微风的默认设置
breeze.NamingConvention.camelCase.setAsDefault()
breeze.config.initializeAdapterInstances
dataService: "OData"
查询
query = new breeze.EntityQuery().from("modalidades")
query = query.where("Nome", breeze.FilterQueryOp.Contains, @TermoBusca()) if @TermoBusca()
query.orderBy("Nome")
manager = new breeze.EntityManager("/odata/")
promise = manager.executeQuery(query)
.finally ->
notice.pnotify_remove()
filterUrl = creditoimobiliario.getParameterByName "\\$filter", @url
_this.TermoBusca "$filter=#{filterUrl}" if filterUrl
.fail creditoimobiliario.displayXhrNotifyError
promise.then (data, status, xhr) =>
return if not status or status != 200
ko.utils.arrayPushAll @Collection, data.value
@NextUrl data["odata.nextLink"]
promise
元数据
Metadata
<EntityType Name="Modalidade">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="Edm.Int32" Nullable="false" />
<Property Name="Nome" Type="Edm.String" Nullable="false" />
</EntityType>
推荐答案
我在此链接。
解决方案只是注释以下行 NamingConvention.camelCase.setAsDefault();
代码
The solution was simply comment this line NamingConvention.camelCase.setAsDefault();
of code
这篇关于无法找到属性:entityType上的Nome:的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文