C# Asp.net WebApi 如何在 CRUD 中 post 时不填充实体的 ID 字段

C# Asp.net WebApi how to not populate ID field for the Entity when post in CRUD

我正在创建具有 CRUD 功能的简单网络api。 我有一个实体说例如:产品。

我正在使用 FluentNHibernate 映射表。 Id是按顺序生成的。

public ProductMap()
{
    Table("PRODUCT");

    Id(x => x.Id).GeneratedBy.Sequence("SEQ_REC_SCH_INFO").Column("SCH_ID");

    Map(x => x.Name, "Name");
    Map(x => x.Category, "Category");
    Map(x=>x.Price,"Price");
}

所以我不希望在 post 数据时填充产品的 Id 参数。

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Category { get; set; }
    public decimal Price { get; set; }
}

如何让api控制器除了Id字段之外的其他字段传递给控制器​​?

谢谢

在系统之间传递模型的最佳方法是 ViewModels,使用这种方法您可以在某些情况下忽略某些属性并在其他情况下包括它们,但是如果您想忽略此 属性在所有情况下,您都可以使用 JsonIgnore 属性来防止这些属性被序列化。