Update: Just added an attachment with the xml file for your convenience.

Yup, a little late but it’s here, I managed to find some time to connect MySQL’s Sakila DB to SharePoint via BDC.

I used an ODBC connection by the way.

There are four entities:

  • Country
  • City
  • Actor
  • Film

And the following associations:

  • CountryToCities
    image
  • ActorToFilms
    image
  • FilmToActors
    image

Of course you can use the data as usual (lists, profiles, search…).

Here are the contents of the file:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<LobSystem xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" Type="Database" Version="1.0.0.0" Name="Sakila" xmlns="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">
  <LobSystemInstances>
    <LobSystemInstance Name="Sakila">
      <Properties>
        <Property Name="rdbconnectionDriver" Type="System.String">{MySQL ODBC 5.1 Driver}</Property>
        <Property Name="rdbconnectionserver" Type="System.String">MySQL Machine</Property>
        <Property Name="rdbconnectionport" Type="System.String">3306</Property>
        <Property Name="rdbconnectiondatabase" Type="System.String">sakila</Property>
        <Property Name="rdbconnectionuser" Type="System.String">user</Property>
        <Property Name="rdbconnectionpassword" Type="System.String">password</Property>
        <Property Name="rdbconnection Trusted_Connection" Type="System.String">yes</Property>
        <Property Name="rdbconnectionoption" Type="System.String">3</Property>
        <Property Name="DatabaseAccessProvider" Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAccessProvider">Odbc</Property>
        <Property Name="AuthenticationMode" Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAuthenticationMode">PassThrough</Property>
      </Properties>
    </LobSystemInstance>
  </LobSystemInstances>
  <Entities>
    <Entity EstimatedInstanceCount="10000" Name="Actor">
      <Identifiers>
        <Identifier TypeName="System.Int32" Name="actor_id" />
      </Identifiers>
      <Methods>
        <Method Name="Find_Actor">
          <Properties>
            <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>
            <Property Name="RdbCommandText" Type="System.String">Select actor_id,first_name,last_name,last_update from actor where actor_id=?</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="In" Name="@actor_id">
              <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="actor_id" Name="actor_id" />
            </Parameter>
            <Parameter Direction="Return" Name="@actor">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="actor_id" Name="actor_id" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="first_name" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="last_name" />
                      <TypeDescriptor TypeName="System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="last_update" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Type="SpecificFinder" ReturnParameterName="@actor" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="Find_Actor_Instance" />
          </MethodInstances>
        </Method>
        <Method Name="FindAll_Actor_IdEnumerator">
          <Properties>
            <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>
            <Property Name="RdbCommandText" Type="System.String">Select actor_id from actor</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="Return" Name="@actor">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="actor_id" Name="actor_id" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Type="IdEnumerator" ReturnParameterName="@actor" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="FindAll_Actor_IdEnumerator" />
          </MethodInstances>
        </Method>
        <Method Name="FindAll_Actor_Finder">
          <Properties>
            <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>
            <Property Name="RdbCommandText" Type="System.String">Select actor_id,first_name,last_name,last_update from actor</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="Return" Name="@actor">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="actor_id" Name="actor_id" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="first_name" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="last_name" />
                      <TypeDescriptor TypeName="System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="last_update" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Type="Finder" ReturnParameterName="@actor" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="FindAll_Actor_Finder" />
          </MethodInstances>
        </Method>
      </Methods>
    </Entity>
    <Entity EstimatedInstanceCount="10000" Name="Country">
      <Identifiers>
        <Identifier TypeName="System.Int32" Name="CountryKey" />
      </Identifiers>
      <Methods>
        <Method Name="Find_Country">
          <Properties>
            <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>
            <Property Name="RdbCommandText" Type="System.String">Select country_id,country,last_update from country where country_id=?</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="In" Name="@CountryKey">
              <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="CountryKey" Name="CountryKey" />
            </Parameter>
            <Parameter Direction="Return" Name="@country">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="CountryKey" Name="country_id" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="country" />
                      <TypeDescriptor TypeName="System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="last_update" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Type="SpecificFinder" ReturnParameterName="@country" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="Find_country_Instance" />
          </MethodInstances>
        </Method>
        <Method Name="FindAll_Country_IdEnumerator">
          <Properties>
            <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>
            <Property Name="RdbCommandText" Type="System.String">Select country_id from country</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="Return" Name="@country">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="CountryKey" Name="country_id" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Type="IdEnumerator" ReturnParameterName="@country" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="FindAll_Country_IdEnumerator" />
          </MethodInstances>
        </Method>
        <Method Name="FindAll_Country_Finder">
          <Properties>
            <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>
            <Property Name="RdbCommandText" Type="System.String">Select country_id,country,last_update from country</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="Return" Name="@country">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="CountryKey" Name="country_id" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="country" />
                      <TypeDescriptor TypeName="System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="last_update" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Type="Finder" ReturnParameterName="@country" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="FindAll_Country_Finder" />
          </MethodInstances>
        </Method>
      </Methods>
    </Entity>
    <Entity EstimatedInstanceCount="10000" Name="City">
      <Identifiers>
        <Identifier TypeName="System.Int32" Name="city_id" />
      </Identifiers>
      <Methods>
        <Method Name="Find_City">
          <Properties>
            <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>
            <Property Name="RdbCommandText" Type="System.String">Select city_id,city,country_id,last_update from city where city_id=?</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="In" Name="@city_id">
              <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="city_id" Name="city_id" />
            </Parameter>
            <Parameter Direction="Return" Name="@city">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="city_id" Name="city_id" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="city" />
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="country_id" />
                      <TypeDescriptor TypeName="System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="last_update" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Type="SpecificFinder" ReturnParameterName="@city" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="Find_City_Instance" />
          </MethodInstances>
        </Method>
        <Method Name="FindAll_City_IdEnumerator">
          <Properties>
            <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>
            <Property Name="RdbCommandText" Type="System.String">Select city_id from city</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="Return" Name="@city">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="city_id" Name="city_id" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Type="IdEnumerator" ReturnParameterName="@city" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="FindAll_City_IdEnumerator" />
          </MethodInstances>
        </Method>
        <Method Name="FindAll_City_Finder">
          <Properties>
            <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>
            <Property Name="RdbCommandText" Type="System.String">Select city_id,city,country_id,last_update from  city</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="Return" Name="@city">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="city_id" Name="city_id" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="city" />
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="country_id" />
                      <TypeDescriptor TypeName="System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="last_update" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Type="Finder" ReturnParameterName="@city" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="FindAll_City_Finder" />
          </MethodInstances>
        </Method>
        <Method Name="GetCountryCities">
          <Properties>
            <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>
            <Property Name="RdbCommandText" Type="System.String">Select city_id,city,country_id,last_update from city where country_id=?</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="In" Name="@CountryKey">
              <TypeDescriptor
                TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
                IdentifierEntityName="Country"
                IdentifierName="CountryKey"
                Name="CountryKey" />
            </Parameter>
            <Parameter Direction="Return" Name="@CountryCities">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="city_id" Name="city_id" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="city" />
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="country_id" />
                      <TypeDescriptor TypeName="System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="last_update" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
        </Method>
      </Methods>
    </Entity>
    <Entity EstimatedInstanceCount="10000" Name="Film">
      <Identifiers>
        <Identifier TypeName="System.Int32" Name="film_id" />
      </Identifiers>
      <Methods>
        <Method Name="Find_Film">
          <Properties>
            <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>
            <Property Name="RdbCommandText" Type="System.String">Select film_id,title,description,release_year,language_id,original_language_id,rental_duration,rental_rate,length,replacement_cost,rating,special_features,last_update from film where film_id=?</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="In" Name="@film_id">
              <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="film_id" Name="film_id" />
            </Parameter>
            <Parameter Direction="Return" Name="@film">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="film_id" Name="film_id" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="title" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="description" />
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="release_year" />
                      <TypeDescriptor TypeName="System.Byte, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="language_id" />
                      <TypeDescriptor TypeName="System.Byte, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="original_language_id" />
                      <TypeDescriptor TypeName="System.Byte, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="rental_duration" />
                      <TypeDescriptor TypeName="System.Decimal, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="rental_rate" />
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="length" />
                      <TypeDescriptor TypeName="System.Decimal, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="replacement_cost" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="rating" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="special_features" />
                      <TypeDescriptor TypeName="System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="last_update" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Type="SpecificFinder" ReturnParameterName="@film" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="Find_film_Instance" />
          </MethodInstances>
        </Method>
        <Method Name="FindAll_Film_IdEnumerator">
          <Properties>
            <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>
            <Property Name="RdbCommandText" Type="System.String">Select film_id from film</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="Return" Name="@film">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="film_id" Name="film_id" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Type="IdEnumerator" ReturnParameterName="@film" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="FindAll_film_IdEnumerator" />
          </MethodInstances>
        </Method>
        <Method Name="FindAll_Film_Finder">
          <Properties>
            <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>
            <Property Name="RdbCommandText" Type="System.String">Select film_id,title,description,release_year,language_id,original_language_id,rental_duration,rental_rate,length,replacement_cost,rating,special_features,last_update from film</Property>
          </Properties>
          <Parameters>
            <Parameter Direction="Return" Name="@film">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="film_id" Name="film_id" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="title" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="description" />
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="release_year" />
                      <TypeDescriptor TypeName="System.Byte, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="language_id" />
                      <TypeDescriptor TypeName="System.Byte, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="original_language_id" />
                      <TypeDescriptor TypeName="System.Byte, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="rental_duration" />
                      <TypeDescriptor TypeName="System.Decimal, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="rental_rate" />
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="length" />
                      <TypeDescriptor TypeName="System.Decimal, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="replacement_cost" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="rating" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="special_features" />
                      <TypeDescriptor TypeName="System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="last_update" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Type="Finder" ReturnParameterName="@film" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="FindAll_film_Finder" />
          </MethodInstances>
        </Method>
        <Method Name="GetActorFilms">
          <Properties>
            <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>
            <Property Name="RdbCommandText" Type="System.String">
              SELECT
                f.film_id,
                f.title,
                f.description,
                f.release_year,
                f.language_id,
                f.original_language_id,
                f.rental_duration,
                f.rental_rate,
                f.length,
                f.replacement_cost,
                f.rating,
                f.special_features,
                f.last_update
              FROM film f
              INNER JOIN film_actor fa
              ON f.film_id = fa.film_id
              WHERE actor_id = ?
            </Property>
          </Properties>
          <Parameters>
            <Parameter Direction="In" Name="@ActorKey">
              <TypeDescriptor
                TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
                IdentifierEntityName="Actor"
                IdentifierName="actor_id"
                Name="ActorKey" />
            </Parameter>
            <Parameter Direction="Return" Name="@ActorFilms">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="film_id" Name="film_id" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="title" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="description" />
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="release_year" />
                      <TypeDescriptor TypeName="System.Byte, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="language_id" />
                      <TypeDescriptor TypeName="System.Byte, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="original_language_id" />
                      <TypeDescriptor TypeName="System.Byte, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="rental_duration" />
                      <TypeDescriptor TypeName="System.Decimal, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="rental_rate" />
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="length" />
                      <TypeDescriptor TypeName="System.Decimal, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="replacement_cost" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="rating" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="special_features" />
                      <TypeDescriptor TypeName="System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="last_update" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
        </Method>
        <Method Name="GetFilmActors">
          <Properties>
            <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>
            <Property Name="RdbCommandText" Type="System.String">
              SELECT
              a.actor_id,
              a.first_name,
              a.last_name,
              a.last_update
              FROM actor a
              INNER JOIN film_actor fa
              ON a.actor_id = fa.actor_id
              WHERE film_id=?
            </Property>
          </Properties>
          <Parameters>
            <Parameter Direction="In" Name="@film_id">
              <TypeDescriptor
                TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
                IdentifierEntityName="Film"
                IdentifierName="film_id"
                Name="FilmKey" />
            </Parameter>
            <Parameter Direction="Return" Name="@FilmActors">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="actor_id" Name="actor_id" IdentifierEntityName="Actor"/>
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="first_name" />
                      <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="last_name" />
                      <TypeDescriptor TypeName="System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="last_update" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
        </Method>
      </Methods>
    </Entity>
  </Entities>
  <Associations>
    <Association AssociationMethodEntityName="City"
                 AssociationMethodName="GetCountryCities"
                 AssociationMethodReturnParameterName="@CountryCities"
                 Name="CountryToCities"
                 AssociationMethodReturnTypeDescriptorName="Reader"
                 AssociationMethodReturnTypeDescriptorLevel="0"
                 IsCached="true">
      <SourceEntity Name="Country"/>
      <DestinationEntity Name="City"/>
    </Association>
    <Association AssociationMethodEntityName="Film"
                     AssociationMethodName="GetActorFilms"
                     AssociationMethodReturnParameterName="@ActorFilms"
                     Name="ActorToFilms"
                     AssociationMethodReturnTypeDescriptorName="Reader"
                     AssociationMethodReturnTypeDescriptorLevel="0"
                     IsCached="true">
      <SourceEntity Name="Actor"/>
      <DestinationEntity Name="Film"/>
    </Association>
    <Association AssociationMethodEntityName="Film"
                     AssociationMethodName="GetFilmActors"
                     AssociationMethodReturnParameterName="@FilmActors"
                     Name="FilmToActors"
                     AssociationMethodReturnTypeDescriptorName="Reader"
                     AssociationMethodReturnTypeDescriptorLevel="0"
                     IsCached="true">
      <SourceEntity Name="Film"/>
      <DestinationEntity Name="Actor"/>
    </Association>
  </Associations>
</LobSystem>