I have the followng method:-
public ActionResult CustomersDetails(string[] SelectRight)
{
var selectedCustomers = new SelectedCustomers
{
Inf
I have invested lot of time in solving this issue but at last found that the Sequence of Keys in .Find(Key1, Key2, ..) should match with the sequence of keys in Edmx diagram entity.
Look at the exception message The argument types 'Edm.Int64' and 'Edm.String' are incompatible for this operation. Near WHERE predicate, line 1, column 90.
.
This implies that the ID
of your AccountDefinition
class is a long
or Int64
however you are trying to query it using a string
.
You need to do one of the following:
string[]
in CustomersDetails(string[] SelectRight)
to long[]
and string
in GetAccount(string id)
to long id
return entities.AccountDefinition.Find(id);
to return entities.AccountDefinition.Find(long.Parse(id));
Option 1 is the better option but will require more change (which I would recommend you do), Option 2 is less change but has the possibility it will blow up if id
is null or a value which cannot be parsed to a long
.
I know this is an old post but I figured I'd add a comment here since I had the same problem.
All I did was re-arrange the parameters in the find function.
I had it like this:
public ActionResult Details(Int32 id, string dataSource)
{
TVData_VW_ShowList tvdata_vw_showlist = context.TVData_VW_ShowList.Find(id, datasource);
if (tvdata_vw_showlist == null)
{
return HttpNotFound();
}
return View(tvdata_vw_showlist);
}
And I had to change it to this:
public ActionResult Details(Int32 id, string dataSource)
{
TVData_VW_ShowList tvdata_vw_showlist = context.TVData_VW_ShowList.Find(dataSource, id);
if (tvdata_vw_showlist == null)
{
return HttpNotFound();
}
return View(tvdata_vw_showlist);
}
You pass to Find method string but expeced Int64 The argument types 'Edm.Int64' and 'Edm.String'
.