问:我要创建一个使用IIS当前使用的Web服务的android应用程序。我当前正在使用的程序:SQLserver,Visual Studio for Web,android studio。到目前为止,从sql到Web服务的连接已完成,我的JSON数据的显示似乎与其他人截然不同。
这就是我的Json的样子,例如
[{“ a”:“ 1”,“ b”:“ 1”},{“ a”:“ 2”,“ b”:“ 2”},{“ a”:“ 3”,“ b”: “ 3”},{“ a”:“ 4”,“ b”:“ 4”},{“ a”:“ 5”,“ b”:“ 15”}]
许多人说这不是杰森。
我想添加一个标题,并使我的json变得像EXAMPLE
{“ item”:[{“ a”:“ 1”,“ b”:“ 1”,“ a”:“ 2”,“ b”:“ 2”,“ a”:“ 3”,“ b” :“ 3”,“ a”:“ 4”,“ b”:“ 14,” a“:” 5“,” b“:” 15“}]}
这是显示从sql到浏览器的所有json的服务
控制器类
namespace ProductServiceFinal.Controllers
{
public class ProductController : ApiController
{
public IEnumerable<product> Get()
{
using (estocktakeEntities entities = new estocktakeEntities())
{
return entities.products.ToList();
}
}
}
产品类别
public partial class product
{
public string ib_itemcode1 { get; set; }
public string transtatuscode { get; set; }
public string invtid { get; set; }
public string descr { get; set; }
}
数据上下文类
public partial class estocktakeEntities : DbContext
{
public estocktakeEntities()
: base("name=estocktakeEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<product> products { get; set; }
}
}
我相信我应该在某个地方添加数组标题。也许在产品类中,但是我不确定如何去做。
任何建议都会有很大帮助。
答:请考虑以下更改
如果Title类不需要像Product类中那样具有重复属性,请删除它们。
在Entity Framework中使用代码优先方法时,请更改产品类定义中的 以下行
public List<Title> title { get; set; }
至
public virtual ICollection<Title> title { get; set; }
这就是在使用实体框架时如何维护实体之间的关系。它表示单个产品可以与多个标题相关,其中每个标题是一个单独的实体。
您也可以在ProductController中保留以下行
return entities.products.ToList();
代替
return entities.titles.ToList();
因为您要返回产品列表而不是标题列表。如果不是这样,请纠正我。
为了避免给您带来更多麻烦,建议您先尝试使用简单的Entity Framework Code First教程,然后再尝试使用代码。一旦您对语言和代码模式感到满意,便可以将其与最终尝试的内容相关联。