The data that is being returned as your Business Data Catalog entity needs a way of being identified row by row. This is exactly the same as how a database works, you create a primary key which can then uniquely identify a row.
With the bdc, in your entity you must define identifier(s). You can have multiple identifiers - which you will need if your entity has a composite key - but the Business Data Catalog gets tricky when doing this so if you can - always use a single identifier.

An identifier is used in a number of places. Firstly it is used in the SpecificFinder and IdEnumerator method. The SpecificFinder method has the job within the Business Data Catalog of returning a single row of data - so it needs to know and use the identifier to get just one row of data. The IdEnumerator has the job within the BDC of getting all the identifier values for all the rows of data that need to be indexed by SharePoint search - so again it obviously needs to know about the identifier.

<Identifiers>
    <Identifier TypeName="System.Int32" Name="CategoryId" />
</Identifiers>

BDC Meta Man will generate your identifiers for you automatically when you drag and drop a database table onto the design surface as long as your table or view has primary key fields. If you use a web service, or a table without primary key fields, you will simply be prompted to select which field to set as the identifier within your BDC entity.