2011-08-15 2 views
1

Sharepoint 2010の最初のBDCモデルに苦労しています。私は1つのエンティティで非常に単純なモデルを作成しました。私が行って、特定のエントリを検索してみてください。次のエラーでentity.FindSpecificでBDCモデルでEntity.FindSpecificを実行するときのエラー

mNavLobSystemInstance = mCatalog.GetLobSystem("NAVViews").GetLobSystemInstances()["NAVViews"]; 

この方法がクラッシュ::

private IEntityInstance GetBdcEntityInstance(string nr, string entityName) 
    { 
     Identity id = new Identity(nr); 
     IEntity entity = mCatalog.GetEntity(Constants.BdcNavEntityNameSpace, pEntityName); 
     IEntityInstance instance = entity.FindSpecific(id, navLobSystemInstance); 
     return instance; 
    } 

navLobSystemInstanceを使用して初期化され

This Entity (External Content Type) does not belong to the LobSystemInstance (External System Instance) provided. Parameter name: lobSystemInstance"

私は思いますこれはエンティティが私が定義したLOBシステムの一部ではないことを私に伝えようとするので、私はBDCモデルのXMLをうまく使いこなす必要があります。私はこの特定のXMLジャングルフォーマットにも新しく、数多くのことを試しましたが、私は「明らかな」エラーを見るのに十分理解していません。誰かアイデア?

<?xml version="1.0" encoding="utf-8"?> 
<Model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/windows/2007/BusinessDataCatalog" Name="NAVViews"> 
    <Properties> 
    <Property Name="ConnectionString" Type="System.String"></Property> 
    </Properties> 
    <LobSystems> 
    <LobSystem Name="NAV" Type="DotNetAssembly"> 
     <LobSystemInstances> 
     <LobSystemInstance Name="NAVViews" /> 
     </LobSystemInstances> 
     <Entities> 
     <Entity Name="BdcCustomer" Namespace="BdcNAVModel.NAVViews" Version="1.0.0.1"> 
      <Properties> 
      <Property Name="Class" Type="System.String">BdcNAVModel.NAVViews.BdcCustomerService, NAVViews</Property> 
      </Properties> 
      <Identifiers> 
      <Identifier Name="No" TypeName="System.String" /> 
      </Identifiers> 
      <Methods> 
      <Method Name="ReadItem"> 
       <Parameters> 
       <Parameter Name="returnParameter" Direction="Return"> 
        <TypeDescriptor Name="BdcCustomer" TypeName="BdcNAVModel.NAVViews.BdcCustomer, NAVViews" IsCollection="false"> 
        <TypeDescriptors> 
         <TypeDescriptor Name="No" TypeName="System.String" /> 
         <TypeDescriptor Name="Name" TypeName="System.String" /> 
         <TypeDescriptor Name="Name2" TypeName="System.String" /> 
         <TypeDescriptor Name="Address" TypeName="System.String" /> 
         <TypeDescriptor Name="Address2" TypeName="System.String" /> 
         <TypeDescriptor Name="ZipCode" TypeName="System.String" UpdaterField="false" /> 
         <TypeDescriptor Name="City" TypeName="System.String" /> 
         <TypeDescriptor Name="CountryRegion" TypeName="System.String" /> 
         <TypeDescriptor Name="PhoneNo" TypeName="System.String" /> 
         <TypeDescriptor Name="SalesPersonCode" TypeName="System.String" /> 
         <TypeDescriptor Name="CountryRegionCode" TypeName="System.String" /> 
        </TypeDescriptors> 
        </TypeDescriptor> 
        </Parameter> 
       <Parameter Name="CustomerNo" Direction="In"> 
        <TypeDescriptor Name="CustomerNo" TypeName="System.String" /></Parameter> 
       </Parameters> 
       <MethodInstances> 
       <MethodInstance Name="ReadItem" Type="SpecificFinder" ReturnParameterName="returnParameter" ReturnTypeDescriptorPath="BdcCustomer" /> 
       </MethodInstances></Method> 
      <Method Name="ReadList"> 
       <Parameters> 
       <Parameter Name="customerList" Direction="Return"> 
        <TypeDescriptor Name="CustomerList" TypeName="System.Collections.Generic.IEnumerable`1[[BdcNAVModel.BdcCustomer, NAVViews]]" IsCollection="true"> 
        <TypeDescriptors> 
         <TypeDescriptor Name="BdcCustomer" TypeName="BdcNAVModel.NAVViews.BdcCustomer, NAVViews" IsCollection="false"> 
         <TypeDescriptors> 
          <TypeDescriptor Name="No" TypeName="System.String" /> 
          <TypeDescriptor Name="Name" TypeName="System.String" /> 
          <TypeDescriptor Name="Name2" TypeName="System.String" /> 
          <TypeDescriptor Name="Address" TypeName="System.String" /> 
          <TypeDescriptor Name="Address2" TypeName="System.String" /> 
          <TypeDescriptor Name="ZipCode" TypeName="System.String" /> 
          <TypeDescriptor Name="City" TypeName="System.String" /> 
          <TypeDescriptor Name="CountryRegion" TypeName="System.String" /> 
          <TypeDescriptor Name="PhoneNo" TypeName="System.String" /> 
          <TypeDescriptor Name="SalesPersonCode" TypeName="System.String" /> 
          <TypeDescriptor Name="CountryRegionCode" TypeName="System.String" /></TypeDescriptors></TypeDescriptor></TypeDescriptors> 
        </TypeDescriptor></Parameter> 
       </Parameters> 
       <MethodInstances> 
       <MethodInstance Name="ReadList" Type="Finder" ReturnParameterName="customerList" ReturnTypeDescriptorPath="CustomerList" /> 
       </MethodInstances></Method> 
      </Methods></Entity> 
     </Entities> 
    </LobSystem> 
    </LobSystems> 
</Model> 

答えて

0

あなたが入れLogSystemInstance名(NAVViews)は、あなたが返すTypeDescriptor(BdcCustomer)の名前でなければなりません。ここで

はフルBDCモデルXMLです。これらの2つはあなたのエンティティの名前に対応する必要があります。これはBdcCustomerです。したがって、この行を変更してみてください。その中へ

<LobSystemInstance Name="NAVViews" /> 

<LobSystemInstance Name="BdcCustomer" /> 

また、私は最近で働いたこと、this xml modelに見てみることができます。

関連する問題