所以我已经启动并运行了我的 WCF 数据服务,但我希望能够插入到多个表中 - 用一个简单的例子来解释会更容易:
表:
tbl_Shop
- ShopID(主键)
- 地点
- 所有者
tbl_产品
- ProductID(主键)
- 店铺编号
- 产品名称
- 产品价格
1 商店有许多产品。1 个产品只能与 1 个商店关联。
我计划使用存储过程来加入并返回 Shop_ID 上的 tbl_Products 和 tbl_Shop
我有一个我想要的场景:
- 步骤 1) 在 tbl_Shop 中创建一个新条目
- 步骤 2) 创建多个产品并将它们与步骤 1 中创建的 Shop 关联
获得此设置的最佳方法是什么?
我最初想在 tbl_Shop 中创建一个条目,返回这个新创建的项目的 ShopID 并在 tbl_Products 中创建时将其插入 - 这似乎是一种混乱/不正确/不可靠的方式。
我还没有在表之间建立关系(不确定是否需要它们?)
谢谢
编辑:
我首先创建了数据库,然后从中生成了一个模型。在 Model1.Designer.cs 我有:
public partial class MyDBEntities3 : ObjectContext
{
....
在 Service.svc 我有:
[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class Service : DataService< MyDBEntities3>
{
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.SetEntitySetPageSize("*", 50);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
config.SetServiceOperationAccessRule("*", ServiceOperationRights.AllRead);
//set to false in production
config.UseVerboseErrors = true;
}
[WebGet]
public IQueryable<GetRentByDate_Result> GetStoretByID(int ID)
{
// Calls a Stored Procedure which returns the store of a given StoreID
return CurrentDataSource.GetRentByDate(ID).AsQueryable();
}
}