When you are using the Business Data Catalog you need to think about an Entity being a real world object such as a product, customer or perhaps a more theoretical item as a sale. For developers who have been doing object oriented programming this concept will be very familiar.

Your BDC entities are how your end users will end up using your business data in SharePoint. They may choose to list the customers in the Buiness Data List Web Part and then hook this up with the Sales Entity and make use of the Business Data Related List web part so that you can select a customer and that customers sales records will be displayed.

Before your end users can make use of these Entities however you need to define them in your application definition file. If you are using a database quite often you may be able to map a single table to a single entity. If you can do this then things are easy! If your database if heavily normalized however and it looks like the fields that make up an entity are split over different tables you have a number of options:
1, Your database methods to get the data can include SQL joins
2, Use a stored procedure to join and present your data
3, Use a View to join and present your data

Of course if you are using web services to present your data to the Business Data Catalog you can mix, join and present you data in any way your business requires.

Your Entity will need a number of different Methods defined within it - which methods you create will define where exactly your entity can be used within SharePoint


Finder method - Business Data List Web Part, Business Data Column

SpecificFinder method - Business Data Column, Profile Page, Search

IdEnumerator - Search

Click on each method name for more details about how each one works.

No doubt you in your line of business system you will have data that forms a 1 to many relationship - or also refered to as parent->child relationship. This is the kind of relationship we mentioned above where each customer will have associated sales. You will have to build each entity seperately, but once you have a customer and sale entity, you can join them together with an association method. This method will require an input parameter so that it can filter the rows of data being returned - for example we need to pass the customer id to the sales association method to filter the sales being returned by this customer id.

Information that also needs to be defined within your entity are:

Identifiers

Methods

Actions

If you have any comments/edits/additions to this article please email support@lightningtools.com