Azure移动应用和Xamarin

时间:2017-08-04 21:09:34

标签: azure xamarin mobile

我正在尝试制作一个移动应用,它将使用Azure数据库系统。我制作自己的桌子时遇到了很多麻烦,并且已经在编码圈中运行了几个星期。我无法弄清楚是什么以及如何改变。

我可以从azure获得todolist并运行,我已经尝试使用数据对象和控制器在后端创建自己的表,但在添加DbSet om上下文后,当我尝试将todolist部分打破时运行应用程序。

如何将我自己的东西添加到应用程序中,以便我可以有一个人员表,例如,而不是todolist?

提前非常感谢你。这对我来说很困惑。

这就是我所做的:

在后端,我创建了一个包含EntityData类的person类,并且有一个firstname字符串属性和一个lastname字符串属性 然后我添加了

public DbSet<Person> Persons { get; set; }

然后一个Personcontroller通过Add - &gt;控制器 - &gt; Azure Mobile 视觉工作室2017中的应用程序表控制器

然后在我从azure下载的应用程序中,我做了这个人类         公共阶层人      {

    [JsonProperty(PropertyName = "firstName")]
    public string firstName { get; set; }

    [JsonProperty(PropertyName = "lastName")]
    public string lastName { get; set; }

    [JsonProperty(PropertyName = "id")]
    public string id { get; set; }

 }

然后制作表

 IMobileServiceTable<Person> PersonTable = client.GetTable<Person>();

然后尝试插入表格

        Person peter = new Person();
        peter.firstName = "Peter";
        peter.lastName = "Friis";
        await personTable.InsertAsync(peter);

但是会出错:

Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException: 
'The request could not be completed.  (Internal Server Error)'

1 个答案:

答案 0 :(得分:0)

根据您的描述,我假设您正在使用带有SQL数据库的C#后端。我建议您可以在ConfigureMobileApp Startup.MobileApp.cs文件的config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always; 方法下添加以下代码,以收集详细的错误消息。

while ((int)(1) != 0)
              {
                    ho_Image.Dispose();
                    HOperatorSet.GrabImage(out ho_Image, hv_AcqHandle);

                        HOperatorSet.DispObj(ho_Image, HWindow);
                        operation(ho_Image, hv_Type1, hv_Type2, hv_Num1ecc, hv_Num2qr, hv_Qr, hv_Ecc,
                        HWindow, hv_Timeoutqr, hv_Timeoutecc, out hv_DecodedDataStrings1,
                        out hv_DecodedDataStrings2, out hv_DataCodeHandle1, out hv_DataCodeHandle2,
                        out hv_foundecc, out hv_foundqr);

                        hv_Qr = 0;
                        hv_Ecc = 0;
                        //MessageBox.Show(" QR NuM : " + this.QRNumber);
                        //MessageBox.Show("ECC Number : " + this.ECCNumber);

                        if (this.QRNumber == QRNum && this.ECCNumber == ECCNum)
                        {
                            foreach (string qr in this.QRValue)
                            {
                                MessageBox.Show(" QR value : " + qr);
                            }

                            foreach (string ecc in this.ECCValue)
                            {
                                MessageBox.Show("ECC value : " + ecc);
                            }


                        }
              }

在通过移动客户端SDK将新记录插入表格之前,您可以利用邮递员或提琴手模拟插入操作,如下所示:缩小此问题:

enter image description here

有关http表格界面的更多详细信息,请参阅here

此外,由于您要添加自定义表,因此请确保已手动更新数据库以支持新数据库模型或配置自动代码优先迁移。有关详细信息,请参阅adrian hall的有关Implementing Table Controllers的书。