C# 实体框架代码第一个连接表在插入时复制数据(Fluent API)
我目前正在创建一个连接到Azure移动服务的Windows 8.1应用程序,并首先使用EF6代码创建数据库 目前的表格有C# 实体框架代码第一个连接表在插入时复制数据(Fluent API),c#,.net,entity-framework,code-first,C#,.net,Entity Framework,Code First,我目前正在创建一个连接到Azure移动服务的Windows 8.1应用程序,并首先使用EF6代码创建数据库 目前的表格有账户、用户、业务、档案图片和Blob。创建概要文件时,将在帐户表中插入一个条目,然后根据用户的选择,在用户或业务表中插入一个条目 当实例化帐户时,将在帐户模型中创建新的用户或业务和档案图片模型 我打算实现ProfilePicture的方法是在创建帐户时设置默认的配置文件图片,因此我从表中选择默认的配置文件图片blob,并在帐户中创建ProfilePicture模型时使用它。我遇
账户
、用户
、业务
、档案图片
和Blob
。创建概要文件时,将在帐户
表中插入一个条目,然后根据用户的选择,在用户
或业务
表中插入一个条目
当实例化帐户
时,将在帐户
模型中创建新的用户
或业务
和档案图片
模型
我打算实现ProfilePicture
的方法是在创建帐户时设置默认的配置文件图片,因此我从表中选择默认的配置文件图片blob,并在帐户中创建ProfilePicture
模型时使用它。我遇到的问题是,当传递从查询返回的Blob
时,它似乎也会将Blob插入Blob
表中,从而复制条目,我不知道为什么。(希望下面的App.xaml.cs代码会更清楚一些)
我完全不知道为什么会发生这种情况。仍在掌握FluentAPI,因此我的知识不是最好的,因此任何提示/指导以及帮助都将不胜感激!谢谢
(对不起,代码太多了)
服务方
数据对象
public class Account : EntityData
{
public string Username { get; set; }
public string Password { get; set; }
public User User { get; set; }
public Business Business { get; set; }
public ProfilePicture ProfilePicture { get; set; }
}
public class Business : EntityData
{
public string Name { get; set; }
public string ContactNo { get; set; }
public Account Account { get; set; }
}
public class User : EntityData
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Account Account { get; set; }
}
public class ProfilePicture : EntityData
{
public Account Account { get; set; }
public Blob Blob { get; set; }
}
public class Blob : EntityData
{
public string ContainerName { get; set; }
public string ResourceName { get; set; }
public string SASQueryString { get; set; }
public string ImageURI { get; set; }
}
public class Account
{
public string Id { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public User User { get; set; }
public Business Business { get; set; }
public ProfilePicture ProfilePicture { get; set; }
}
public class Business
{
public string Id { get; set; }
public string Name { get; set; }
public string ContactNo { get; set; }
}
public class User
{
public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class ProfilePicture
{
public string Id { get; set; }
public Account Account { get; set; }
public Blob Blob { get; set; }
}
public class Blob
{
public string Id { get; set; }
public string ContainerName { get; set; }
public string ResourceName { get; set; }
public string SASQueryString { get; set; }
public string ImageURI { get; set; }
}
Blob blob1 = new Blob
{
ContainerName = "Container1",
ImageURI = "Uri1",
ResourceName = "DefaultProfilePic",
SASQueryString = "SomethingGoesHere"
};
await BlobTable.InsertAsync(blob1);
List<Blob> pictures = await BlobTable.Where(blob => blob.ContainerName == "Container1").ToListAsync();
Account account = new Account
{
Username = "User123",
User = new User
{
FirstName = "John",
LastName = "Smithy"
},
ProfilePicture = new ProfilePicture
{
Blob = pictures.First()
},
Password = "Password123"
};
string result = await MobileService.InvokeApiAsync<Account, string>("customAccount", account);
实体配置(仅限其构造函数):
客户端
型号
public class Account : EntityData
{
public string Username { get; set; }
public string Password { get; set; }
public User User { get; set; }
public Business Business { get; set; }
public ProfilePicture ProfilePicture { get; set; }
}
public class Business : EntityData
{
public string Name { get; set; }
public string ContactNo { get; set; }
public Account Account { get; set; }
}
public class User : EntityData
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Account Account { get; set; }
}
public class ProfilePicture : EntityData
{
public Account Account { get; set; }
public Blob Blob { get; set; }
}
public class Blob : EntityData
{
public string ContainerName { get; set; }
public string ResourceName { get; set; }
public string SASQueryString { get; set; }
public string ImageURI { get; set; }
}
public class Account
{
public string Id { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public User User { get; set; }
public Business Business { get; set; }
public ProfilePicture ProfilePicture { get; set; }
}
public class Business
{
public string Id { get; set; }
public string Name { get; set; }
public string ContactNo { get; set; }
}
public class User
{
public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class ProfilePicture
{
public string Id { get; set; }
public Account Account { get; set; }
public Blob Blob { get; set; }
}
public class Blob
{
public string Id { get; set; }
public string ContainerName { get; set; }
public string ResourceName { get; set; }
public string SASQueryString { get; set; }
public string ImageURI { get; set; }
}
Blob blob1 = new Blob
{
ContainerName = "Container1",
ImageURI = "Uri1",
ResourceName = "DefaultProfilePic",
SASQueryString = "SomethingGoesHere"
};
await BlobTable.InsertAsync(blob1);
List<Blob> pictures = await BlobTable.Where(blob => blob.ContainerName == "Container1").ToListAsync();
Account account = new Account
{
Username = "User123",
User = new User
{
FirstName = "John",
LastName = "Smithy"
},
ProfilePicture = new ProfilePicture
{
Blob = pictures.First()
},
Password = "Password123"
};
string result = await MobileService.InvokeApiAsync<Account, string>("customAccount", account);
App.xaml.cs
public class Account : EntityData
{
public string Username { get; set; }
public string Password { get; set; }
public User User { get; set; }
public Business Business { get; set; }
public ProfilePicture ProfilePicture { get; set; }
}
public class Business : EntityData
{
public string Name { get; set; }
public string ContactNo { get; set; }
public Account Account { get; set; }
}
public class User : EntityData
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Account Account { get; set; }
}
public class ProfilePicture : EntityData
{
public Account Account { get; set; }
public Blob Blob { get; set; }
}
public class Blob : EntityData
{
public string ContainerName { get; set; }
public string ResourceName { get; set; }
public string SASQueryString { get; set; }
public string ImageURI { get; set; }
}
public class Account
{
public string Id { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public User User { get; set; }
public Business Business { get; set; }
public ProfilePicture ProfilePicture { get; set; }
}
public class Business
{
public string Id { get; set; }
public string Name { get; set; }
public string ContactNo { get; set; }
}
public class User
{
public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class ProfilePicture
{
public string Id { get; set; }
public Account Account { get; set; }
public Blob Blob { get; set; }
}
public class Blob
{
public string Id { get; set; }
public string ContainerName { get; set; }
public string ResourceName { get; set; }
public string SASQueryString { get; set; }
public string ImageURI { get; set; }
}
Blob blob1 = new Blob
{
ContainerName = "Container1",
ImageURI = "Uri1",
ResourceName = "DefaultProfilePic",
SASQueryString = "SomethingGoesHere"
};
await BlobTable.InsertAsync(blob1);
List<Blob> pictures = await BlobTable.Where(blob => blob.ContainerName == "Container1").ToListAsync();
Account account = new Account
{
Username = "User123",
User = new User
{
FirstName = "John",
LastName = "Smithy"
},
ProfilePicture = new ProfilePicture
{
Blob = pictures.First()
},
Password = "Password123"
};
string result = await MobileService.InvokeApiAsync<Account, string>("customAccount", account);
Blob blob1=新Blob
{
ContainerName=“Container1”,
ImageURI=“Uri1”,
ResourceName=“DefaultProfilePic”,
SASQueryString=“SomethingGoesher”
};
等待BlobTable.InsertAsync(blob1);
列表图片=等待BlobTable.Where(blob=>blob.ContainerName==“Container1”).toListSync();
帐户=新帐户
{
Username=“User123”,
用户=新用户
{
FirstName=“约翰”,
LastName=“史密斯”
},
ProfilePicture=新的ProfilePicture
{
Blob=pictures.First()
},
Password=“Password123”
};
字符串结果=等待MobileService.InvokeApiAsync(“customAccount”,account);