<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>SharePoint 2010</title>
        <link>http://lightningtools.com/blog/category/13.aspx</link>
        <description>SharePoint 2010</description>
        <language>en-GB</language>
        <copyright>Lightning Tools</copyright>
        <managingEditor>support@lightningtools.com</managingEditor>
        <generator>Subtext Version 1.9.5.177</generator>
        <item>
            <title>SharePoint Chat Web Part for SP 2010 &amp;ndash; Sandbox Solution</title>
            <link>http://lightningtools.com/blog/archive/2010/03/16/sharepoint-chat-web-part-for-sp-2010-ndash-sandbox-solution.aspx</link>
            <description>&lt;p&gt;Because there is so much interesting new stuff in SharePoint 2010 we decided at Lightning Tools to implement the 20% personal project day where people could work on any project/product they wanted. We’ve always got a long list of ideas of things to build for SharePoint so this is an ideal time for people to take one of them forward, implement it how they think it should be built and learn some new technology along the way. Today we are setting free into the wild the Lightning Chat Web Part – with 2 more coming tomorrow.&lt;/p&gt;  &lt;h3&gt;Chatter, chatter, chatter.&lt;/h3&gt;  &lt;p&gt;As you may know the Lightning Tools crew is spread around the world – UK, Armenia and Russia. This means a lot of our work is done via chatting on Skype. Rather than using Skype why not build ourselves a tool that can exist within SharePoint? We generally have one subsite for each project so the idea was to have a chat section for each project using a SharePoint list for storage. As everything is running at site level we also decided to develop this as a Sandbox Solution for SharePoint 2010 so it is something site collection administrators can deploy rather than having to go and nag the SharePoint administration folks.&lt;/p&gt;  &lt;p&gt;We’re happy to introduce to you the Lightning Tools Silverlight Chat Web Part for SharePoint&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/1102e4908a47_EBB8/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="209" alt="image" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/1102e4908a47_EBB8/image_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;[click the image above for a larger view]&lt;/p&gt;  &lt;p&gt;You can download the web part from here:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.lightningtools.com/downloads/lightningtools.lightningchat.zip" target="_blank"&gt;Lightning Tools Silverlight Chat Web Part for SharePoint&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here’s how to get it running:&lt;/p&gt;  &lt;p&gt;1, In Central Administration ensure that the Microsoft SharePoint Foundation Sandboxed Code Service is running.&lt;/p&gt;  &lt;p&gt;2, Open SharePoint at the site collection where you want to use the Chat web part and go to Site Actions –&amp;gt; Site Settings&lt;/p&gt;  &lt;p&gt;3, In the Galleries section click on Solutions&lt;/p&gt;  &lt;p&gt;4, From the Solutions tab click on the ‘Upload Solution’ button and browse to the WSP you have downloaded.&lt;/p&gt;  &lt;p&gt;5, After uploading it, Activate the solution.&lt;/p&gt;  &lt;p&gt;6, Go back to Site Settings and click on the ‘Manage site features’ link. In here activate the Feature for “LightningTools.LightningChat -&amp;gt; List Feature”. This simply creates a SharePoint list that will be used to store the chat log.&lt;/p&gt;  &lt;p&gt;Now you can go to your web part page, put it into edit mode, and add the Silverlight Chat Web Part from the Lightning Tools category. When the web part is added it may not display for a couple of reasons:&lt;/p&gt;  &lt;p&gt;- you need to install Silverlight 3, if so just follow the instructions presented in the web part   &lt;br /&gt;- sometimes it seems the web part doesn’t initially load while in edit mode. Try saving and publishing the page&lt;/p&gt;  &lt;p&gt;Also you’ll probably want to set the web part height and width to 500 pixels to give you a better view of it.&lt;/p&gt;  &lt;h3&gt;Take it to the desktop&lt;/h3&gt;  &lt;p&gt;One of the great features of Silverlight 3 is being able to take the application out of the browser and install it to the desktop and run it as though it were a windows application. To do this with the Chat Web Part simply right click on it and choose to install it to the computer&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/1102e4908a47_EBB8/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="213" alt="image" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/1102e4908a47_EBB8/image_thumb_1.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This will allow you to create a shortcut to the application from the desktop or start menu. From then on you can click on the shortcut and the application will run as a standalone application outside of SharePoint – pretty damm cool! :-)&lt;/p&gt;  &lt;h3&gt;What if we can’t use Silverlight?&lt;/h3&gt;  &lt;p&gt;We realize that not all organizations will allow their employees to install Silverlight, so as an alternative we have built a different chat web part that makes use of the new SharePoint ECMAScript javascript library. When you are adding the web part to the page simply choose whether you want the Silverlight or Ajax version.&lt;/p&gt;  &lt;p&gt;The ajax version isn’t as pretty as the Silverlight one yet, but we’ll be working to improve it over time.&lt;/p&gt;  &lt;h3&gt;What’s next?&lt;/h3&gt;  &lt;p&gt;Well you tell us :-) Is there a need for this kind of web part. What are the critical features we are missing? Leave a comment here with your feedback and ideas…&lt;/p&gt;&lt;img src="http://lightningtools.com/blog/aggbug/137.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lightning Tools</dc:creator>
            <guid>http://lightningtools.com/blog/archive/2010/03/16/sharepoint-chat-web-part-for-sp-2010-ndash-sandbox-solution.aspx</guid>
            <pubDate>Tue, 16 Mar 2010 14:18:25 GMT</pubDate>
            <wfw:comment>http://lightningtools.com/blog/comments/137.aspx</wfw:comment>
            <comments>http://lightningtools.com/blog/archive/2010/03/16/sharepoint-chat-web-part-for-sp-2010-ndash-sandbox-solution.aspx#feedback</comments>
            <wfw:commentRss>http://lightningtools.com/blog/comments/commentRss/137.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Using Filters and the Business Connectivity Services object model</title>
            <link>http://lightningtools.com/blog/archive/2010/03/02/using-filters-and-the-business-connectivity-services-object-model.aspx</link>
            <description>&lt;p&gt;In our last blog post we covered how to use the Business Connectivity Services object model on the server to connect to BCS services metadata store, retrieve information about the lob systems, external content types, methods and how to execute a method of an external content type.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.lightningtools.com/blog/archive/2010/03/01/executing-bcs-external-content-type-methods-in-c.aspx" target="_blank"&gt;Executing BCS External Content Type Methods in C#&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In this blog post we will demonstrate how to execute an external content type’s finder method which has a filter defined&lt;/p&gt;  &lt;p&gt;1, Using SharePoint Designer 2010 create a new External Content Type using the Employees table from &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=487C9C23-2356-436E-94A8-2BFB66F0ABDC&amp;amp;displaylang=en" target="_blank"&gt;AdventureWorks2000&lt;/a&gt;. Setup a filter for this ECT against the First Name column&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BusinessConnectivityServicesobjectmodela_6F6/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="189" alt="image" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BusinessConnectivityServicesobjectmodela_6F6/image_thumb_1.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;[click image for a larger view]&lt;/p&gt;  &lt;p&gt;Notice that we have ticked the checkbox for ‘Ignore filter if Value is:’ &lt;/p&gt;  &lt;p&gt;2, Open up Visual Studio 2010 and create a new Visual Web Part project from within the SharePoint 2010 project section.&lt;/p&gt;  &lt;p&gt;3, With the web parts user control in design mode add some text saying ‘First Name :’ and drag n drop a textbox and button on, setting the textbox ID to be FirstNameTextbox and the button ID to be SearchButton. Finally add a GridView so that your user control looks something similar to…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BusinessConnectivityServicesobjectmodela_6F6/image_6.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="150" alt="image" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BusinessConnectivityServicesobjectmodela_6F6/image_thumb_2.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;4, We need to add a reference to Microsoft.BusinessData.dll, right click on the References folder in Solution Explorer and choose Add Reference. Browse to the dll at&lt;/p&gt;  &lt;p&gt;c:\program files\common files\microsoft shared\web server extensions\14\ISAPI\Microsoft.BusinessData.dll&lt;/p&gt;  &lt;p&gt;5, Open the code view of our user control - VisualWebPart1UserControl.ascx.cs, and add the following using statements…&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; color: blue; font-family: consolas; mso-bidi-font-family: consolas"&gt;using&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt; Microsoft.SharePoint.BusinessData;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; color: blue; font-family: consolas; mso-bidi-font-family: consolas"&gt;using&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt; Microsoft.SharePoint.BusinessData.SharedService;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; color: blue; font-family: consolas; mso-bidi-font-family: consolas"&gt;using&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt; Microsoft.BusinessData.MetadataModel;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; color: blue; font-family: consolas; mso-bidi-font-family: consolas"&gt;using&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt; Microsoft.BusinessData.Runtime;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; color: blue; font-family: consolas; mso-bidi-font-family: consolas"&gt;using&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt; Microsoft.SharePoint.Administration;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; color: blue; font-family: consolas; mso-bidi-font-family: consolas"&gt;using&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt; Microsoft.BusinessData.MetadataModel.Collections;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; color: blue; font-family: consolas; mso-bidi-font-family: consolas"&gt;using&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt; Microsoft.SharePoint.BusinessData.Runtime;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; color: blue; font-family: consolas; mso-bidi-font-family: consolas"&gt;using&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt; System.Data;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;font face="Trebuchet MS"&gt;6, Add the following method…&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; color: blue; font-family: consolas; mso-bidi-font-family: consolas"&gt;private&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; executeFilterMethod()      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;{     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// get the catalog of entities to work with...       &lt;br /&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="color: #2b91af"&gt;BdcService&lt;/span&gt; service = &lt;span style="color: #2b91af"&gt;SPFarm&lt;/span&gt;.Local.Services.GetValue&amp;lt;&lt;span style="color: #2b91af"&gt;BdcService&lt;/span&gt;&amp;gt;();      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IMetadataCatalog&lt;/span&gt; catalog = service.GetDatabaseBackedMetadataCatalog(&lt;span style="color: #2b91af"&gt;SPServiceContext&lt;/span&gt;.Current);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;     &lt;p&gt; &lt;/p&gt;   &lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// get the Employee external content type...       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IEntity&lt;/span&gt; entity = catalog.GetEntity(&lt;span style="color: #a31515"&gt;"http://localhost"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;"Employees"&lt;/span&gt;);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// get the filters for the default Finder method       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IFilterCollection&lt;/span&gt; filters = entity.GetDefaultFinderFilters();      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// if FirstNameTextbox has a value set the filter value...       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (FirstNameTextbox.Text != &lt;span style="color: blue"&gt;string&lt;/span&gt;.Empty)      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;{      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WildcardFilter&lt;/span&gt; filter = (&lt;span style="color: #2b91af"&gt;WildcardFilter&lt;/span&gt;)filters[&lt;span style="color: brown"&gt;0&lt;/span&gt;];      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;filter.Value = FirstNameTextbox.Text;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;}      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// return the filtered data using the default Finder method...       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IEntityInstanceEnumerator&lt;/span&gt; enumerator = entity.FindFiltered(filters, entity.GetLobSystem().GetLobSystemInstances()[&lt;span style="color: brown"&gt;0&lt;/span&gt;].Value);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DataTable&lt;/span&gt; table = &lt;span style="color: blue"&gt;null&lt;/span&gt;;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;span style="color: green"&gt;// loop through the data returned       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;while&lt;/span&gt; (enumerator.MoveNext())      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;{      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="color: green"&gt;// first time setup the datatable, everytime there after add a row...       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (table == &lt;span style="color: blue"&gt;null&lt;/span&gt;)      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;table = enumerator.Current.EntityAsDataTable;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;else       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;     &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;       &lt;/span&gt;enumerator.Current.EntityAsDataRow(table);&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;}      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// bind data to our GridView...       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;GridView1.DataSource = table;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;GridView1.DataBind();      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;}     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;7, Double click on the button on our user control to add a click event handler, and simply call the method above we defined&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9.5pt; color: blue; font-family: consolas; mso-bidi-font-family: consolas"&gt;protected&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; SearchButton_Click(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e)      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;executeFilterMethod();      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt; font-family: consolas; mso-bidi-font-family: consolas"&gt;}&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;font face="Consolas"&gt;8, That is all the code we have to write, we can now press F5 and Visual Studio will deploy the wsp to our site.&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;font face="Consolas"&gt;When SharePoint opens put the web page into edit mode and insert a web part. You’ll find in the Custom web part category VisualWebPart1. When you add this you can click the Button, and you’ll be returned all the data from the Employees External Content Type, or enter a first name such as Michael and you’ll see just those matching results coming back:&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BusinessConnectivityServicesobjectmodela_6F6/image_8.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="182" alt="image" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BusinessConnectivityServicesobjectmodela_6F6/image_thumb_3.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;Check back again soon as we’ll be writing plenty more about how to use the BCS object model.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-layout-grid-align: none"&gt;&amp;lt;&lt;a href="http://www.twitter.com/nickswan" target="_blank"&gt;nick&lt;/a&gt;/&amp;gt;&lt;/p&gt;&lt;img src="http://lightningtools.com/blog/aggbug/133.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lightning Tools</dc:creator>
            <guid>http://lightningtools.com/blog/archive/2010/03/02/using-filters-and-the-business-connectivity-services-object-model.aspx</guid>
            <pubDate>Tue, 02 Mar 2010 16:30:25 GMT</pubDate>
            <wfw:comment>http://lightningtools.com/blog/comments/133.aspx</wfw:comment>
            <comments>http://lightningtools.com/blog/archive/2010/03/02/using-filters-and-the-business-connectivity-services-object-model.aspx#feedback</comments>
            <wfw:commentRss>http://lightningtools.com/blog/comments/commentRss/133.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Executing BCS External Content Type Methods in C#</title>
            <link>http://lightningtools.com/blog/archive/2010/03/01/executing-bcs-external-content-type-methods-in-c.aspx</link>
            <description>&lt;h6&gt;&lt;/h6&gt;  &lt;p&gt;In our previous blog post we have gone through how to use the Business Connectivity Services object model to retrieve information about external content types which have been deployed to SharePoint’s Business Connectivity Services.&lt;/p&gt; In this blog post we will show you how to get the Business Connectivity Services methods collection for an external content type and execute the finder and specific finder methods with Business Connectivity Services object model.   &lt;p&gt;Please follow the steps 1 to 5 that are described in our previous blog post to create a simple Visual Web Part and add appropriate references and using statements.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.lightningtools.com/blog/archive/2010/02/22/connect-to-bdcservice-and-getentities-ndash-bcs-object-model.aspx" target="_blank"&gt;Connect to BdcService and GetEntities&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When you have the visual web part created follow the steps below to get you working with external content type’s methods via Business Connectivity Services object model.&lt;/p&gt;  &lt;p&gt;1) Add the following using statement to your visual web part’s source code. This namespace allows us to use KeyValuePair class&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9.5pt"&gt;using&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt; System.Collections.Generic; &lt;/span&gt;    &lt;/p&gt;&lt;p&gt;&lt;/p&gt;   &lt;p&gt;&lt;/p&gt;  &lt;h6&gt;&lt;/h6&gt;  &lt;p&gt;2) Change Page_Load method, so now it should call the new method to execute external content type’s methods.&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9.5pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e)       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;{  &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// GetExternalContentTypesAndLobSystems();  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;EnumerateAndExecuteExternalContentTypeMethods();       &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;} &lt;/span&gt;    &lt;/p&gt;&lt;p&gt;&lt;/p&gt;   &lt;p&gt;&lt;/p&gt;  &lt;p&gt;3) Now, lets define the new method, which should enumerate the methods of an external content type and executes the finder and specific finder methods.&lt;/p&gt;  &lt;p&gt;Here is the code of the new method.&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 9.5pt"&gt;private&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; EnumerateAndExecuteExternalContentTypeMethods()      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// Get reference to BDC Service  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;BdcService&lt;/span&gt; service = &lt;span style="color: #2b91af"&gt;SPFarm&lt;/span&gt;.Local.Services.GetValue&amp;lt;&lt;span style="color: #2b91af"&gt;BdcService&lt;/span&gt;&amp;gt;();&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;     &lt;p&gt; &lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// Get MetaData Catalog  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IMetadataCatalog&lt;/span&gt; catalog = service.GetDatabaseBackedMetadataCatalog(&lt;span style="color: #2b91af"&gt;SPServiceContext&lt;/span&gt;.Current);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// Get entity with appropriate namespace and name  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IEntity&lt;/span&gt; entity = catalog.GetEntity(&lt;span style="color: #a31515"&gt;"http://win-74y1750o0mq"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;"Employee"&lt;/span&gt;);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// Some heading for the literal control  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;Literal1.Text = &lt;span style="color: #a31515"&gt;"&amp;lt;h1&amp;gt;"&lt;/span&gt; + entity.Name + &lt;span style="color: #a31515"&gt;" Methods&amp;lt;/h1&amp;gt; "&lt;/span&gt; + &lt;span style="color: #a31515"&gt;"&amp;lt;/br&amp;gt;"&lt;/span&gt;;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// Some variable for finder and specific finder methods' records  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;int&lt;/span&gt; finderMethodRecordsCount = &lt;span style="color: brown"&gt;0&lt;/span&gt;;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt; strFirstName = &lt;span style="color: #a31515"&gt;""&lt;/span&gt;;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// Get methods collection  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;foreach&lt;/span&gt; (&lt;span style="color: #2b91af"&gt;KeyValuePair&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;IMethod&lt;/span&gt;&amp;gt; method &lt;span style="color: blue"&gt;in&lt;/span&gt; entity.GetMethods())      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;{      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="color: green"&gt;// Show methods name  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;Literal1.Text += method.Key + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="color: green"&gt;// Get current method's instance  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IMethodInstance&lt;/span&gt; methodInstance = method.Value.GetMethodInstances()[method.Key];      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (methodInstance.MethodInstanceType == &lt;span style="color: #2b91af"&gt;MethodInstanceType&lt;/span&gt;.Finder)      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="color: green"&gt;// Execute finder method  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IEntityInstanceEnumerator&lt;/span&gt; ieie = entity.FindFiltered(method.Value.GetFilters(methodInstance), entity.GetLobSystem().GetLobSystemInstances()[&lt;span style="color: brown"&gt;0&lt;/span&gt;].Value);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="color: green"&gt;// Count records count  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;while&lt;/span&gt; (ieie.MoveNext())      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;{      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;finderMethodRecordsCount++;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;}      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="color: green"&gt;// Execute specific finder method.  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (methodInstance.MethodInstanceType == &lt;span style="color: #2b91af"&gt;MethodInstanceType&lt;/span&gt;.SpecificFinder)      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="color: green"&gt;// Identity value  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="color: blue"&gt;int&lt;/span&gt; i = &lt;span style="color: brown"&gt;1&lt;/span&gt;;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="color: green"&gt;// Create new identity  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Identity&lt;/span&gt; identity = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Identity&lt;/span&gt;(i);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="color: green"&gt;// Execute specific finder method and get the entity instance  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IEntityInstance&lt;/span&gt; entInstance = entity.FindSpecific(identity, entity.GetLobSystem().GetLobSystemInstances()[&lt;span style="color: brown"&gt;0&lt;/span&gt;].Value);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="color: green"&gt;// Show the first name of the entity instance returned by specific finder  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;strFirstName = entInstance[&lt;span style="color: #a31515"&gt;"FirstName"&lt;/span&gt;].ToString();      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;}      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;Literal1.Text += &lt;span style="color: #a31515"&gt;"&amp;lt;br/&amp;gt; Finder method's retrieved records count&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;= "&lt;/span&gt; + finderMethodRecordsCount.ToString();      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;Literal1.Text += &lt;span style="color: #a31515"&gt;"&amp;lt;br/&amp;gt; Specific finder method's returned instance's first name is "&lt;/span&gt; + strFirstName;      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;}     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;   &lt;/p&gt;&lt;p&gt; &lt;/p&gt;   &lt;p&gt;We’ll now go through the important lines of code individually so we can explain a little more about them…&lt;/p&gt;  &lt;p&gt;4) Firstly we need to get the BdcService, metadata catalog and then external content types via the Business Connectivity Services object model.&lt;/p&gt;  &lt;p&gt;In this example we have used Employee external content type with &lt;a href="http://win-74y1750o0mq&amp;quot;"&gt;http://win-74y1750o0mq&lt;/a&gt; namespace.&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// Get reference to BDC Service  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;BdcService&lt;/span&gt; service = &lt;span style="color: #2b91af"&gt;SPFarm&lt;/span&gt;.Local.Services.GetValue&amp;lt;&lt;span style="color: #2b91af"&gt;BdcService&lt;/span&gt;&amp;gt;();&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;     &lt;p&gt; &lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// Get MetaData Catalog  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IMetadataCatalog&lt;/span&gt; catalog = service.GetDatabaseBackedMetadataCatalog(&lt;span style="color: #2b91af"&gt;SPServiceContext&lt;/span&gt;.Current);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// Get entity with appropriate namespace and name  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IEntity&lt;/span&gt; entity = catalog.GetEntity(&lt;span style="color: #a31515"&gt;"http://win-74y1750o0mq"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;"Employee"&lt;/span&gt;);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;h6&gt;&lt;/h6&gt;  &lt;p&gt;5) When you have the Employee external content type you can loop through all the methods available to you in that ECT&lt;/p&gt;  &lt;p&gt;IEntity’s GetMethods function returns collection of KeyValuePair&amp;lt;string,IMethod&amp;gt;, where the key is the name of the method, and IMethod is the method itself.&lt;/p&gt; &lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// Get methods collection  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: blue"&gt;foreach&lt;/span&gt; (&lt;span style="color: #2b91af"&gt;KeyValuePair&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;string&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;IMethod&lt;/span&gt;&amp;gt; method &lt;span style="color: blue"&gt;in&lt;/span&gt; entity.GetMethods())    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;{    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="color: green"&gt;// Show methods name  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;Literal1.Text += method.Key + &lt;span style="color: #a31515"&gt;","&lt;/span&gt;;    &lt;p&gt;&lt;/p&gt; &lt;/span&gt;  &lt;p&gt;6) When we loop through the methods available to us we need to check the MethodInstanceType value to figure out what type of method it is &lt;/p&gt; &lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="color: green"&gt;    // Get current method's instance  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="color: #2b91af"&gt;    IMethodInstance&lt;/span&gt; methodInstance = method.Value.GetMethodInstances()[method.Key];    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="color: blue"&gt;    if&lt;/span&gt; (methodInstance.MethodInstanceType == &lt;span style="color: #2b91af"&gt;MethodInstanceType&lt;/span&gt;.Finder)    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;    {   &lt;p&gt;&lt;/p&gt; &lt;/span&gt;  &lt;h6&gt;&lt;/h6&gt;  &lt;p&gt;7) If this iteration returns the Finder method we should execute it, then we’ll simply loop through the records it returns so we can get a record count.&lt;/p&gt;  &lt;p&gt;To execute the finder method we should call IEntity’s FindFiltered method. &lt;/p&gt;  &lt;p&gt;First parameter of the FindFiltered method is the collection of the filters which we retrieve if we call the IMethod’s GetFilters method and pass the method instance as a parameter. &lt;/p&gt;  &lt;p&gt;The second parameter of the FindFiltered method is the lob system instance, which we can retrieve if we call IEntity’s GetLobSystem, and then call GetLobSystemInstance. After all this is done we can iterate over the enumerator returned and increment our record counter.&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="color: green"&gt;    // Execute finder method  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="color: #2b91af"&gt;    IEntityInstanceEnumerator&lt;/span&gt; ieie = entity.FindFiltered(method.Value.GetFilters(methodInstance), entity.GetLobSystem().GetLobSystemInstances()[&lt;span style="color: brown"&gt;0&lt;/span&gt;].Value);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="color: green"&gt;    // Count records count  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="color: blue"&gt;    while&lt;/span&gt; (ieie.MoveNext())      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;    {     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;        finderMethodRecordsCount++;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;    }     &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h6&gt;&lt;/h6&gt;  &lt;p&gt;8) If our iteration returns the SpecificFinder method we need to execute it in a slightly different way. This is because the SpecificFinder method is always going to be expecting at last one parameter to be passed in (which will map to the identifier) &lt;/p&gt;  &lt;p&gt;We need to create an Identity class instance and pass it as an argument to the IEntity’s FindSpecific method. The FindSpecific method’s first parameter should be identifier, and the second parameter is the lob system instance.&lt;/p&gt;  &lt;p&gt;When the FindSpecific method is executed it returns an IEntityInstance instance&lt;/p&gt;  &lt;p&gt;In our example we are hardcoding the value of the Identifier we are passing in (int i = 1), and simply getting the value of the field FirstName from the EntityInstance returned.&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="color: green"&gt;    // Identity value  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="color: blue"&gt;    int&lt;/span&gt; i = &lt;span style="color: brown"&gt;1&lt;/span&gt;;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="color: green"&gt;    // Create new identity  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="color: #2b91af"&gt;    Identity&lt;/span&gt; identity = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Identity&lt;/span&gt;(i);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="color: green"&gt;    // Execute specific finder method and get the entity instance  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="color: #2b91af"&gt;    IEntityInstance&lt;/span&gt; entInstance = entity.FindSpecific(identity, entity.GetLobSystem().GetLobSystemInstances()[&lt;span style="color: brown"&gt;0&lt;/span&gt;].Value);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;&lt;span style="color: green"&gt;    // Show the first name of the entity instance returned by specific finder  &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 9.5pt"&gt;    strFirstName = entInstance[&lt;span style="color: #a31515"&gt;"FirstName"&lt;/span&gt;].ToString();      &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;9)  When you have finished editing the code  press CTRL+F5 to deploy to your SharePoint site.&lt;/p&gt;  &lt;h6&gt;&lt;/h6&gt;  &lt;p&gt;10) Edit the page of your SharePoint site, and add the Visual Web Part that we have been developing. &lt;/p&gt;  &lt;p&gt;You can find it in Custom section.&lt;/p&gt;  &lt;p&gt;It should display the external content type’s methods’ names, records count retrieved by the Finder method, and First Name of the employee returned by specific finder method.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BusinessConnectivityServicesObjectModela_9BEA/EmployeeWebPart_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="BCS object model web part" border="0" alt="BCS object model web part" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BusinessConnectivityServicesObjectModela_9BEA/EmployeeWebPart_thumb.jpg" width="244" height="122" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;hrayr/&amp;gt;&lt;/p&gt;&lt;img src="http://lightningtools.com/blog/aggbug/131.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lightning Tools</dc:creator>
            <guid>http://lightningtools.com/blog/archive/2010/03/01/executing-bcs-external-content-type-methods-in-c.aspx</guid>
            <pubDate>Mon, 01 Mar 2010 11:36:13 GMT</pubDate>
            <wfw:comment>http://lightningtools.com/blog/comments/131.aspx</wfw:comment>
            <comments>http://lightningtools.com/blog/archive/2010/03/01/executing-bcs-external-content-type-methods-in-c.aspx#feedback</comments>
            <wfw:commentRss>http://lightningtools.com/blog/comments/commentRss/131.aspx</wfw:commentRss>
        </item>
        <item>
            <title>RootFinder Property &amp;ndash; BCS Search</title>
            <link>http://lightningtools.com/blog/archive/2010/02/23/rootfinder-property-ndash-bcs-search.aspx</link>
            <description>&lt;p&gt;When we were using the Business Data Catalog it was relatively straight forward to setup your Entities so that SharePoint could crawl and return them in search results. Your Entity had to implement a SpecificFinder and IDEnumerator method. With Business Connectivity Services and SharePoint 2010 there are a number of ways to accomplish this goal such as &lt;/p&gt;  &lt;p&gt;- Finder, SpecficFinder and RootFinder property&lt;/p&gt;  &lt;p&gt;- SpecificFinder and IDEnumerator&lt;/p&gt;  &lt;h3&gt;How the Business Data Catalog did Indexing&lt;/h3&gt;  &lt;p&gt;As we have said the SharePoint indexer made use of the SpecificFinder and IDEnumerator method to crawl your BDC data. The IDEnumerator is the first method that is executed and the job of this was simply to return the identifier values that SharePoint was to crawl. If our entity had a field that represented when the row of data was last modified you could also return this in the IDEnumerator and set the property __BdcLastModifiedTimestamp. We have a great article on our web site that explains this in more detail:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.lightningtools.com/bdc-meta-man/bdc-incremental-crawls.aspx" target="_blank"&gt;Business Data Catalog incremental crawls and how to test.&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;The RootFinder property&lt;/h3&gt;  &lt;p&gt;Now we are working with SharePoint 2010 and the Business Connectivity Services the RootFinder property allows you to have an External Content Type that is searchable without having to implement an IDEnumerator method. If you take a look at SharePoint Designer 2010 there is no option to create specifically an IDEnumerator method&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/RootFinderPropertyBCSSearch_A369/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/RootFinderPropertyBCSSearch_A369/image_thumb.png" width="205" height="209" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;However if we create an External Content Type using SharePoint Designer 2010 it is possible to setup a content source to crawl it and display it in search results. If you export the BCS model from SharePoint Designer 2010 you’ll be able to find out why. To do this:&lt;/p&gt;  &lt;p&gt;1, Click on the External Content Types view in SharePoint Designer 2010 when you have connected to your SharePoint site&lt;/p&gt;  &lt;p&gt;2, Right click on the External Content Type and choose Export Application Model from the menu&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/RootFinderPropertyBCSSearch_A369/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/RootFinderPropertyBCSSearch_A369/image_thumb_1.png" width="244" height="100" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;3, Give the model a name, and then select a file location to save it&lt;/p&gt;  &lt;p&gt;If you take a look at the XML, find the Read List method and locate the MethodInstance element&lt;/p&gt;  &lt;p&gt;&amp;lt;MethodInstances&amp;gt;   &lt;br /&gt;    &amp;lt;MethodInstance Type="Finder" ReturnParameterName="Read List" Default="true" Name="Read List" DefaultDisplayName="Products Read List"&amp;gt;    &lt;br /&gt;        &amp;lt;Properties&amp;gt;    &lt;br /&gt;            &amp;lt;Property Name="UseClientCachingForSearch" Type="System.String"&amp;gt;&amp;lt;/Property&amp;gt;    &lt;br /&gt;            &amp;lt;Property Name="RootFinder" Type="System.String"&amp;gt;&amp;lt;/Property&amp;gt;    &lt;br /&gt;        &amp;lt;/Properties&amp;gt;    &lt;br /&gt;        &amp;lt;AccessControlList&amp;gt;    &lt;br /&gt;        …………&lt;/p&gt;  &lt;p&gt;        &amp;lt;/AccessControlList&amp;gt;   &lt;br /&gt;    &amp;lt;/MethodInstance&amp;gt;    &lt;br /&gt;&amp;lt;/MethodInstances&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Notice that this method is labeled to be used as the RootFinder. This means this Finder method will be used in the same way the IDEnumerator is.&lt;/p&gt;  &lt;p&gt;&amp;lt;nick/&amp;gt;&lt;/p&gt;&lt;img src="http://lightningtools.com/blog/aggbug/130.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lightning Tools</dc:creator>
            <guid>http://lightningtools.com/blog/archive/2010/02/23/rootfinder-property-ndash-bcs-search.aspx</guid>
            <pubDate>Tue, 23 Feb 2010 16:10:34 GMT</pubDate>
            <wfw:comment>http://lightningtools.com/blog/comments/130.aspx</wfw:comment>
            <comments>http://lightningtools.com/blog/archive/2010/02/23/rootfinder-property-ndash-bcs-search.aspx#feedback</comments>
            <wfw:commentRss>http://lightningtools.com/blog/comments/commentRss/130.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Connect to BdcService and GetEntities &amp;ndash; BCS Object Model</title>
            <link>http://lightningtools.com/blog/archive/2010/02/22/connect-to-bdcservice-and-getentities-ndash-bcs-object-model.aspx</link>
            <description>&lt;p&gt;In this walkthrough we will show you how to connect to BCS Service and retrieve basic information about BCS External Content types which have been already deployed.&lt;/p&gt;  &lt;p&gt;We will create a visual web part with a very simple user interface, and will use BCS Object Model within that web part’s source code.&lt;/p&gt;  &lt;p&gt;1) Open up Visual Studio 2010 and create new Visual Web Part project.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step1_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Create SharePoint project" border="0" alt="Create SharePoint project" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step1_thumb.jpg" width="244" height="173" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;[click the image for a larger view]&lt;/p&gt;  &lt;p&gt;2) Edit the user control in the designer and add literal control from the toolbox. We will use this simple user interface and literal control to display some information later.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step2_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Add literal control" border="0" alt="Add literal control" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step2_thumb.jpg" width="244" height="202" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3) Next we need to add a reference to Microsoft.BusinessData assembly. In the solution explorer right click on the References and select Add Reference.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step3_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Add Reference to Project" border="0" alt="Add Reference to Project" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step3_thumb.jpg" width="244" height="170" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;4) In the Add Reference dialog, go to Browse tab and browse to C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI. Add the &lt;b&gt;Microsoft.BusinessData&lt;/b&gt; assembly.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step4_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Browse to the SharePoint directory" border="0" alt="Browse to the SharePoint directory" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step4_thumb.jpg" width="244" height="201" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;5) View the code of Visual web part’s user control (VisualWebPart1UserControl.ascx.cs) and add the following namespaces.&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 10pt"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 10pt"&gt;using&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt; Microsoft.SharePoint;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 10pt"&gt;using&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt; Microsoft.SharePoint.BusinessData;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 10pt"&gt;using&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt; Microsoft.SharePoint.BusinessData.SharedService;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 10pt"&gt;using&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt; Microsoft.BusinessData.MetadataModel;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 10pt"&gt;using&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt; Microsoft.BusinessData.Runtime;     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: blue; font-size: 10pt"&gt;using&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt; Microsoft.SharePoint.Administration;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;6) Add the following method just under the Page_Load method.&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 10pt"&gt;private&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; GetExternalContentTypesAndLobSystems()      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: green; font-size: 10pt"&gt;    // Get reference to BDC Service     &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt;&lt;span style="color: #2b91af"&gt;BdcService&lt;/span&gt; service = &lt;span style="color: #2b91af"&gt;SPFarm&lt;/span&gt;.Local.Services.GetValue&amp;lt;&lt;span style="color: #2b91af"&gt;BdcService&lt;/span&gt;&amp;gt;();      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt;&lt;span style="color: green"&gt;    // Get MetaData Catalog       &lt;br /&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 10pt"&gt;IMetadataCatalog&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt; catalog = service.GetDatabaseBackedMetadataCatalog(&lt;span style="color: #2b91af"&gt;SPServiceContext&lt;/span&gt;.Current);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&lt;span style="color: green"&gt;// Some heading for the literal control       &lt;br /&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt;Literal1.Text = &lt;span style="color: #a31515"&gt;"&amp;lt;h1&amp;gt;Lob Systems and Entities ... &amp;lt;/h1&amp;gt; "&lt;/span&gt; + &lt;span style="color: #a31515"&gt;"&amp;lt;/br&amp;gt;"&lt;/span&gt;;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt;&lt;span style="color: green"&gt;    // Get all the external content types from the meta data catalog       &lt;br /&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt;&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;&lt;span style="color: blue"&gt;foreach&lt;/span&gt; (&lt;span style="color: #2b91af"&gt;IEntity&lt;/span&gt; ect &lt;span style="color: blue"&gt;in&lt;/span&gt; catalog.GetEntities(&lt;span style="color: #a31515"&gt;"*"&lt;/span&gt;))      &lt;br /&gt;    {      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="color: green"&gt;// Add external content type's name and appropriate lob system name to the literal control       &lt;br /&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt;&lt;span style="mso-spacerun: yes"&gt;       &lt;/span&gt;Literal1.Text += ect.Name + &lt;span style="color: #a31515"&gt;","&lt;/span&gt; + ect.GetLobSystem().Name + &lt;span style="color: #a31515"&gt;"&amp;lt;/br&amp;gt;"&lt;/span&gt;;      &lt;br /&gt;    }      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="line-height: 115%; font-family: consolas; font-size: 10pt; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;}&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;We have put some comments in the code which will help you to understand what we have used to a list of external content types, but now we will explain in more details. Methods used in this sample have overloads too, but we will refer only to ones which are used in this code snippet.&lt;/p&gt;  &lt;p&gt;First of all we need to get reference of BdcService, and we need to use SPFarm’s services for that. &lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 10pt"&gt;BdcService&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt; service = &lt;span style="color: #2b91af"&gt;SPFarm&lt;/span&gt;.Local.Services.GetValue&amp;lt;&lt;span style="color: #2b91af"&gt;BdcService&lt;/span&gt;&amp;gt;();      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Next, we should get the MetaData catalog which contains our deployed external content types. To do that, we have used BdcService’s &lt;b&gt;GetDatabaseBackedMetadataCatalog&lt;/b&gt; method, this expects service context as a parameter. Cause, the code is executed within the visual web part, we can use current service context.&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; color: #2b91af; font-size: 10pt"&gt;IMetadataCatalog&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt; catalog = service.GetDatabaseBackedMetadataCatalog(&lt;span style="color: #2b91af"&gt;SPServiceContext&lt;/span&gt;.Current);      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Once we have the metadata catalog reference, we can retrieve information about the deployed external content types. &lt;b&gt;IMetaDataCatalog&lt;/b&gt; interface contains &lt;b&gt;GetEntities&lt;/b&gt; method, which expects a wildcard parameter as an input, and based on that parameter it retrieves an enumerable collection of IEntity type objects. We have used “*” parameter to retrieve all the external content types.&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 10pt"&gt;foreach&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt; (&lt;span style="color: #2b91af"&gt;IEntity&lt;/span&gt; ect &lt;span style="color: blue"&gt;in&lt;/span&gt; catalog.GetEntities(&lt;span style="color: #a31515"&gt;"*"&lt;/span&gt;))      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;When we have an IEntity object, we can use its Name property and also call &lt;b&gt;GetLobSystem&lt;/b&gt;() method to get the lob system of the external content type. &lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt;Literal1.Text += ect.Name + &lt;span style="color: #a31515"&gt;","&lt;/span&gt; + ect.GetLobSystem().Name + &lt;span style="color: #a31515"&gt;"&amp;lt;/br&amp;gt;"&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;7) Call the new added method from Page_Load method of the visual web part’s user control.&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: consolas; color: blue; font-size: 10pt"&gt;protected&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;span style="color: #2b91af"&gt;EventArgs&lt;/span&gt; e)      &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt;{     &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: consolas; font-size: 10pt"&gt;    GetExternalContentTypesAndLobSystems();     &lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;8) Now, when everything is done, rebuild the project and press CTRL+F5 to deploy the visual web part.&lt;/p&gt;  &lt;p&gt;9) Go to your SharePoint site, click on Page ribbon on the top , and then click on Edit button.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step9_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Edit the page" border="0" alt="Edit the page" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step9_thumb.jpg" width="244" height="163" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;10) When the page is edited, click on Insert ribbon and then on Web Part button.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step10_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Add Web Part" border="0" alt="Add Web Part" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step10_thumb.jpg" width="244" height="110" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;11) In the categories section select the Custom group, and you’ll find VisualWebPart1 there. Add it to page.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step11_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Select the Custom group" border="0" alt="Select the Custom group" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step11_thumb.jpg" width="201" height="203" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;12) When web part is added to a page, it will execute Page_Load method, which will call our GetExternalContentTypesAndLobSystems method, and appropriate external content types, lob systems names will be displayed.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step13_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="BCS entities are displayed" border="0" alt="BCS entities are displayed" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSObjectModelconnecttoLobSystem_B84E/Step13_thumb.jpg" width="244" height="109" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;In the coming posts we’ll be going into much more detail and doing some cool things in C# code with BCS data&lt;/p&gt;  &lt;p&gt;&amp;lt;hrayr/&amp;gt;&lt;/p&gt;&lt;img src="http://lightningtools.com/blog/aggbug/129.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lightning Tools</dc:creator>
            <guid>http://lightningtools.com/blog/archive/2010/02/22/connect-to-bdcservice-and-getentities-ndash-bcs-object-model.aspx</guid>
            <pubDate>Mon, 22 Feb 2010 13:29:59 GMT</pubDate>
            <wfw:comment>http://lightningtools.com/blog/comments/129.aspx</wfw:comment>
            <comments>http://lightningtools.com/blog/archive/2010/02/22/connect-to-bdcservice-and-getentities-ndash-bcs-object-model.aspx#feedback</comments>
            <wfw:commentRss>http://lightningtools.com/blog/comments/commentRss/129.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Lightning Tools at SPTechCon</title>
            <link>http://lightningtools.com/blog/archive/2010/02/16/lightning-tools-at-sptechcon.aspx</link>
            <description>Brett Lonsdale from Lightning Tools hosted the booth at this years SPTechCon.  SPTechCon was a great success and everyone who attended commented on the quality of all the speakers and the sessions.  &lt;br /&gt;
&lt;br /&gt;
Brett Lonsdale presented a class on Business Connectivity Services demonstrating the External Lists, EnterPrise Content Types, and how to build ECT's within SharePoint Designer 2010. The class lead into a presentation on Linq by Steven Fowler.&lt;br /&gt;
&lt;br /&gt;
Following that Brett Lonsdale presented Building Business Data Catalog solutions.  We explored building solutions with Visual Studio Tools for Office while utilizing the Business Data Catalog Object Model, Building custom BDC web parts, and building WCF web services to host Line of Business Data.&lt;br /&gt;
&lt;br /&gt;
The Lightning Tools booth was very busy within the exhibitor hall.  We presented our solutions on an overhead projector and got good feedback on DeliverPoint, The Lightning Conductor Web Part, BDC Meta Man and BCS Meta Man.  There was also huge interest in the&lt;a href="javascript:void(0);/*1266362871953*/"&gt; BDC Alert Manage&lt;/a&gt;r which allows you to configure alerts on your Line of Business data as well as SharePoint Lists and Libraries.&lt;br /&gt;
&lt;br /&gt;
This was the first time Lightning Tools had sponsored SPTechCon, and is looking forward to the Boston SPTechCon in October 2010. &lt;img src="http://lightningtools.com/blog/aggbug/126.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lightning Tools</dc:creator>
            <guid>http://lightningtools.com/blog/archive/2010/02/16/lightning-tools-at-sptechcon.aspx</guid>
            <pubDate>Tue, 16 Feb 2010 23:28:54 GMT</pubDate>
            <wfw:comment>http://lightningtools.com/blog/comments/126.aspx</wfw:comment>
            <comments>http://lightningtools.com/blog/archive/2010/02/16/lightning-tools-at-sptechcon.aspx#feedback</comments>
            <wfw:commentRss>http://lightningtools.com/blog/comments/commentRss/126.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Lightning Tools Partner Program</title>
            <link>http://lightningtools.com/blog/archive/2010/02/11/lightning-tools-partner-program.aspx</link>
            <description>&lt;p&gt;We are rolling out our Partner Program during 2010. We are keen to develop relationships with consultancies that have a specialism in SharePoint.&lt;/p&gt;  &lt;p&gt;Our aim is to provide you with training, knowledge and support with our products, the BDC and the forth coming BCS. Our research has found that consultants find it very difficult to find the time to keep up to date with products that are available to them that could save them and their client’s time and money. We will provide you initially with some online training (arranged for your convenience) to get you up and running. We will back this up with ongoing access to our knowledge base allowing you to contact us if you have any queries. &lt;/p&gt;  &lt;p&gt;We will also provide you with a partner discount. Having said this, our products are keenly priced so the main benefit will be for you to have access to our well developed and focused products.&lt;/p&gt;  &lt;p&gt;We will be limiting the number of partners as we do not want to find ourselves too busy to give you the support you require.&lt;/p&gt;  &lt;p&gt;If you are interested in becoming one of our partners, please send me an email to arrange a call.&lt;/p&gt;  &lt;p&gt;We look forward to hearing from you.&lt;/p&gt;  &lt;p&gt;Richard&lt;/p&gt;  &lt;p&gt;&lt;a href="mailto:richard@lightningtools.com"&gt;richard@lightningtools.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://lightningtools.com/blog/aggbug/124.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lightning Tools</dc:creator>
            <guid>http://lightningtools.com/blog/archive/2010/02/11/lightning-tools-partner-program.aspx</guid>
            <pubDate>Thu, 11 Feb 2010 11:28:43 GMT</pubDate>
            <wfw:comment>http://lightningtools.com/blog/comments/124.aspx</wfw:comment>
            <comments>http://lightningtools.com/blog/archive/2010/02/11/lightning-tools-partner-program.aspx#feedback</comments>
            <wfw:commentRss>http://lightningtools.com/blog/comments/commentRss/124.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Create Association Method for BCS Dot Net Assembly</title>
            <link>http://lightningtools.com/blog/archive/2010/02/11/create-association-method-for-bcs-dot-net-assembly.aspx</link>
            <description>&lt;p&gt;In our previous blog posts we have demonstrated how to build up a BCS Model with Visual Studio 2010 and define BCS methods (&lt;a href="http://www.lightningtools.com/blog/archive/2009/11/01/business-data-connectivity-model-ndash-finder-method.aspx" target="_blank"&gt;Finder&lt;/a&gt;, &lt;a href="http://www.lightningtools.com/blog/archive/2009/12/04/bcs-model-in-visual-studio-2010-ndash-specificfinder-and-idenumerator.aspx" target="_blank"&gt;Specific Finder, Id Enumerator&lt;/a&gt;, &lt;a href="http://www.lightningtools.com/blog/archive/2010/01/14/bcs-creator-and-updater-methods-for-dot-net-assembly.aspx" target="_blank"&gt;Creator and Updater&lt;/a&gt;) for the AdventureWorks database Department table.&lt;/p&gt;  &lt;p&gt;In this blog post we are going to show you how to configure association between two BCS external content types created in the Visual Studio 2010 BCS designer. In the previous articles we have used the Department table, so Employee table is be the best choice for the second external content type and we’ll create association between the Department and Employee tables. Firstly, we need to create Employee BCS external content type, so please open the project which you use for Department external content type, and using exactly the same steps create Employee external content type. You don’t need to define all the methods, Finder and Specific finder methods are enough.&lt;/p&gt;  &lt;p&gt;1) Make sure you define a Finder and SpecificFinder method for Employee an Employee External Content Type. You can use the BCS Data List Web Part and BCS Item Web Part to check if data is being retrieved properly. Here is how it should look like in BCS diagram in the Visual Studio 2010.&lt;/p&gt;  &lt;p&gt;The Employee table contains lots of columns, in this example we have used EmployeeID, FirstName, LastName, Title, DepartmentId.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSDotNetAssemblyAssociation_8055/Step1_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Create External Content Types" border="0" alt="Create External Content Types" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSDotNetAssemblyAssociation_8055/Step1_thumb.jpg" width="244" height="111" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;[click images for a larger view]&lt;/p&gt;  &lt;p&gt;2) In Visual Studio 2010 view the toolbox and then click on the “Association”.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSDotNetAssemblyAssociation_8055/Step2_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="BCS Association component" border="0" alt="BCS Association component" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSDotNetAssemblyAssociation_8055/Step2_thumb.jpg" width="244" height="93" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;3) Create an association between Department and Employee, so after you have clicked the Association in the toolbox, click on the Department and then on the Employee.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSDotNetAssemblyAssociation_8055/Step3_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="create BCS association" border="0" alt="create BCS association" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSDotNetAssemblyAssociation_8055/Step3_thumb.jpg" width="244" height="109" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;4) New dialog will be shown where you can configure association methods.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSDotNetAssemblyAssociation_8055/Step4_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="configure the BCS association" border="0" alt="configure the BCS association" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSDotNetAssemblyAssociation_8055/Step4_thumb.jpg" width="236" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;5) In the first section – Identifier mapping , you can map identifiers from the source entity to the destination entity, and in the second section you can add/remove association navigator methods. In our case we will remove the EmployeeToDepartment method and will leave only DepartmentToEmployee method.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSDotNetAssemblyAssociation_8055/Step5_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="remove the other association" border="0" alt="remove the other association" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSDotNetAssemblyAssociation_8055/Step5_thumb.jpg" width="236" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;6) Click “OK” button and it will create association between Department(Source) and Employee(Destination) BCS external content types.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSDotNetAssemblyAssociation_8055/Step6_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="See the association created on the design surface" border="0" alt="See the association created on the design surface" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSDotNetAssemblyAssociation_8055/Step6_thumb.jpg" width="244" height="125" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;7) Next we need to write the C# code for association method. Open DepartmentService.cs file and there you will find DepartmentToEmployee method.&lt;a name="_GoBack"&gt;&lt;/a&gt; Replace the body of that method with the following C# code.&lt;/p&gt;  &lt;p&gt;DataClasses1DataContext dcontext = new DataClasses1DataContext("server=localhost;database=adventureworks2000;uid=***;pwd=***"); Security=true");    &lt;br /&gt;IEnumerable&amp;lt;Employee&amp;gt; records = from record in dcontext.Employees     &lt;br /&gt;                                                            where record.DepartmentID == departmentId     &lt;br /&gt;                                                            select new Employee     &lt;br /&gt;                                                            {     &lt;br /&gt;                                                                EmployeeID = record.EmployeeID,     &lt;br /&gt;                                                                FirstName = record.FirstName,     &lt;br /&gt;                                                                LastName = record.LastName,     &lt;br /&gt;                                                                Title = record.Title,     &lt;br /&gt;                                                                DepartmentId = record.DepartmentID     &lt;br /&gt;                                                            };&lt;/p&gt;  &lt;p&gt;return records;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;8) Rebuild and deploy the solution by pressing CTRL+F5. Go to your SharePoint site and add a BCS Data List Web Part and BCS Related Data List web parts. Choose Department as the type for BCS Data List Web Part and Employee as the type for the related list web part, then make a connection between them so the BCS List Web part should send data to the Related list web part. When everything is done, you can select a Department record in BCS List web part and it will call the association method and show appropriate Employee records in the Related List Web Part.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSDotNetAssemblyAssociation_8055/Step8_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Test out the association with the BCS web parts" border="0" alt="Test out the association with the BCS web parts" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSDotNetAssemblyAssociation_8055/Step8_thumb.jpg" width="244" height="151" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&amp;lt;hrayr/&amp;gt;&lt;/p&gt;&lt;img src="http://lightningtools.com/blog/aggbug/123.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lightning Tools</dc:creator>
            <guid>http://lightningtools.com/blog/archive/2010/02/11/create-association-method-for-bcs-dot-net-assembly.aspx</guid>
            <pubDate>Thu, 11 Feb 2010 11:07:56 GMT</pubDate>
            <wfw:comment>http://lightningtools.com/blog/comments/123.aspx</wfw:comment>
            <comments>http://lightningtools.com/blog/archive/2010/02/11/create-association-method-for-bcs-dot-net-assembly.aspx#feedback</comments>
            <wfw:commentRss>http://lightningtools.com/blog/comments/commentRss/123.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Oracle and the Business Connectivity Services</title>
            <link>http://lightningtools.com/blog/archive/2010/01/28/oracle-and-the-business-connectivity-services.aspx</link>
            <description>&lt;p&gt;Previously we showed you in text how to connect the BCS to Oracle using BCS Meta Man:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.lightningtools.com/blog/archive/2010/01/21/business-connectivity-services-and-oracle-with-bcs-meta-man.aspx" target="_blank"&gt;Business Connectivity Service and Oracle with BCS Meta Man&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now we have a video to share with you! :-)&lt;/p&gt; &lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/1VT-GSABjmM&amp;amp;hl=en_GB&amp;amp;fs=1&amp;amp;rel=0" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed src="http://www.youtube.com/v/1VT-GSABjmM&amp;amp;hl=en_GB&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Hrayr will be auditioning for the role of Dr Evil in the next Austin Power movie! :-)&lt;/p&gt;&lt;img src="http://lightningtools.com/blog/aggbug/121.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lightning Tools</dc:creator>
            <guid>http://lightningtools.com/blog/archive/2010/01/28/oracle-and-the-business-connectivity-services.aspx</guid>
            <pubDate>Thu, 28 Jan 2010 09:55:38 GMT</pubDate>
            <wfw:comment>http://lightningtools.com/blog/comments/121.aspx</wfw:comment>
            <comments>http://lightningtools.com/blog/archive/2010/01/28/oracle-and-the-business-connectivity-services.aspx#feedback</comments>
            <wfw:commentRss>http://lightningtools.com/blog/comments/commentRss/121.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Creating Limit Filters in SharePoint Designer 2010</title>
            <link>http://lightningtools.com/blog/archive/2010/01/28/creating-limit-filters-in-sharepoint-designer-2010.aspx</link>
            <description>&lt;p&gt;In this walk through we are going to show you how to create Limit Filters for your Business Connectivity Services External Content Types in SharePoint Designer 2010. These filters will let limit the amount of records being returned by your back end data source which will not only improve performance, but also make your users lives easier as they have less data to work with and process.&lt;/p&gt;  &lt;p&gt;One important thing to note is that a Limit Filter on it’s own will just limit the items returned, this means that without another filter type you can only access a subset of your data. For example if you want to limit the amount of Products returned by a query to 100, you would add a Limit Filter and add another such as a Wildcard Filter, this will mean you will get a maximum of 100 Products which match the Wildcard filter returned. For information on how to add a Comparison or Wildcard Filter check out our blog post here: &lt;a href="http://www.lightningtools.com/blog/archive/2010/01/14/creating-comparison-and-wildcard-filters-for-bcs-in-sharepoint-designer.aspx" target="_blank"&gt;Creating Comparison and Wildcard filters for BCS in SharePoint Designer 2010&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Pre-requisites..&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SharePoint Designer 2010 &lt;/li&gt;    &lt;li&gt;A Data Source – We will be using the ‘AdventureWorks’ Products table&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;How to..&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Open SharePoint Designer &lt;/li&gt;    &lt;li&gt;Connect to your SharePoint Site &lt;/li&gt;    &lt;li&gt;Click on ‘External Content Types’ from the Site Objects list     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_2.png"&gt;&lt;img title="View External Content Types" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="201" alt="View External Content Types" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Click ‘External Content Type’ from the ‘New’ section of the ribbon &lt;/li&gt;    &lt;li&gt;Give your External Content Type a meaning full name – You just need to click on the existing text to edit     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_4.png"&gt;&lt;img title="Give your External Content Type a good name" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="107" alt="Give your External Content Type a good name" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_thumb_1.png" width="244" border="0" /&gt;&lt;/a&gt;  --&amp;gt; &lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_6.png"&gt;&lt;img title="External Content Type with the name set" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="107" alt="External Content Type with the name set" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_thumb_2.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Click the link in the External Content Type Operations section to ‘discover external data sources and define operations’     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_8.png"&gt;&lt;img title="Add a new connection" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="75" alt="Add a new connection" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_thumb_3.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Click ‘Add Connection’ and choose ’SQL Server’ &lt;/li&gt;    &lt;li&gt;Enter your connection credentials and click OK     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_10.png"&gt;&lt;img title="Enter the connection details" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="162" alt="Enter the connection details" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_thumb_4.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Expand the tree view to show the ‘Products’ Table     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_12.png"&gt;&lt;img title="Expand to see your tables" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="Expand to see your tables" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_thumb_5.png" width="143" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Right Click on the Table and choose ‘New Read List Operation’ &lt;/li&gt;    &lt;li&gt;Change the ‘Operation Name’ and ‘Operation Display Name’ to “All Products and Information”, Click Next &lt;/li&gt;    &lt;li&gt;You will see that SharePoint Designer gives you a warning letting you know you should add a Limit Filer     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_14.png"&gt;&lt;img title="SharePoint Designer warns you about creating a Limit Filter" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="29" alt="SharePoint Designer warns you about creating a Limit Filter" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_thumb_6.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;On the ‘Filter Parameters Configuration’ screen click ‘Add Filter Parameter’     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_30.png"&gt;&lt;img title="Add a Filter Parameter" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="Add a Filter Parameter" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_thumb_14.png" width="244" border="0" /&gt;&lt;/a&gt;   &lt;/li&gt;    &lt;li&gt;When the properties section display’s change the ‘Data Source Element’ to ProductID and click on ‘(Click to Add)’     &lt;br /&gt;      &lt;br /&gt; &lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_20.png"&gt;&lt;img title="Map the Data Source Element" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="49" alt="Map the Data Source Element" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_thumb_9.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Enter the Filter Information as the following. We are going to create a Limit Filter on the Product ID. A Limit Filter lets you choose the number of rows you want returned from the database     &lt;br /&gt;      &lt;br /&gt; &lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_16.png"&gt;&lt;img title="Create Limit Filter" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="158" alt="Create Limit Filter" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_thumb_7.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Click ‘OK’ &lt;/li&gt;    &lt;li&gt;Change the Default Value to 100 – 100 rows will be returned from the Database      &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_18.png"&gt;&lt;img title="Set the default value" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="124" alt="Set the default value" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_thumb_8.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;em&gt;*As per the note at the top of the page, normally you would add another Filter Type here*&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;Click Finish &lt;/li&gt;    &lt;li&gt;Click ‘Save’     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSMultipleFinderMethodsforExternalConte_933D/10_2.png"&gt;&lt;img title="Save the External Content Type" height="152" alt="Save the External Content Type" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSMultipleFinderMethodsforExternalConte_933D/10_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;The ECT will be saved to the BDC Metadata Store     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSMultipleFinderMethodsforExternalConte_933D/11_2.png"&gt;&lt;img title="External Content Type will be saved to BDC Metadata Store" height="58" alt="External Content Type will be saved to BDC Metadata Store" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSMultipleFinderMethodsforExternalConte_933D/11_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Once the document has been saved we can navigate to our SharePoint Site &lt;/li&gt;    &lt;li&gt;Add a ‘Business Data List’ Web Part to your page     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSMultipleFinderMethodsforExternalConte_933D/12_2.png"&gt;&lt;img title="Add Business Data List Web Part" height="121" alt="Add Business Data List Web Part" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/BCSMultipleFinderMethodsforExternalConte_933D/12_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Click on the icon to bring up the ECT Picker &lt;/li&gt;    &lt;li&gt;Select the AdventureWorks Products ECT &lt;/li&gt;    &lt;li&gt;Click ‘OK’ &lt;/li&gt;    &lt;li&gt;The web part will display the Product information, if you page through the results you will notice that it will only go to item 100.     &lt;br /&gt;      &lt;br /&gt;&lt;a href="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_24.png"&gt;&lt;img title="Paging of data is limited" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="131" alt="Paging of data is limited" src="http://lightningtools.com/blog/images/lightningtools_com/blog/WindowsLiveWriter/CreatingmultiplefindersinSharePointDesig_97C7/image_thumb_11.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&amp;lt;&lt;a href="http://www.twitter.com/phillduffy" target="_blank"&gt;phill&lt;/a&gt;/&amp;gt;&lt;/p&gt;&lt;img src="http://lightningtools.com/blog/aggbug/120.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lightning Tools</dc:creator>
            <guid>http://lightningtools.com/blog/archive/2010/01/28/creating-limit-filters-in-sharepoint-designer-2010.aspx</guid>
            <pubDate>Thu, 28 Jan 2010 09:41:43 GMT</pubDate>
            <wfw:comment>http://lightningtools.com/blog/comments/120.aspx</wfw:comment>
            <comments>http://lightningtools.com/blog/archive/2010/01/28/creating-limit-filters-in-sharepoint-designer-2010.aspx#feedback</comments>
            <wfw:commentRss>http://lightningtools.com/blog/comments/commentRss/120.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>