だから私は自分のWCF Dataserviceを稼働させましたが、複数のテーブルに挿入できるようにしたかったのです - 簡単な例で説明する方が簡単でしょう:
テーブル:
tbl_ショップ
- ShopID (主キー)
- 位置
- オーナー
tbl_製品
- ProductID (主キー)
- ショップID
- 商品名
- 商品価格
1 ショップには多くの商品があります。1 つの商品は 1 つのストアにのみ関連付けることができます。
ストアド プロシージャを使用して、Shop_ID で tbl_Products と tbl_Shop に参加して返すことを計画しています。
私がしたいシナリオがあります:
- ステップ 1) tbl_Shop に新しいエントリを作成する
- ステップ 2) いくつかの商品を作成し、ステップ 1 で作成したショップに関連付けます
このセットアップを取得するための最良の方法は何ですか?
私は当初、tbl_Shop でエントリを作成し、この新しく作成されたアイテムの ShopID を返し、tbl_Products で作成するときにそれを挿入することを考えていましたが、これは面倒/不正確/信頼できない方法のようです。
テーブル間の関係を設定していません (必要かどうかわかりません)。
ありがとう
編集:
最初に DB を作成し、それからモデルを生成しました。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();
}
}