无法找到属性:entityType上的Nome: [英] unable to locate property: Nome on entityType:

查看:365
本文介绍了无法找到属性: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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆