I think the problem is actually the lack of a return value. As I understand it, you can identify DomainOperations by convention or by attribute. You re not showing an attribute so RIA will be trying to match it by convention.
For example, by convention, an insert method must:
- have Insert, Add or Create as the method name prefix, e.g. InsertEmployee
- match the signature public void name(Entity e);
a query method must:
- be public
- return IEnumerable, IQueryable or T (where T is an entity).
a custom domain operation must
- be public
- return void
- have an Entity as the first parameter.
EDIT: See Rami A s comment below. I believe this was true at the time but I m not currently working with this technology so I m not current enough on it to update this answer other than to note that it may be incorrect.
Or you can use Attributes such as [Insert],[Delete],[Update],[Query],[Custom]. From my docs, all the attributes do is remove the requirement for the name convention - it s not clear from them, to me, what the [Query] and [Custom] attributes achieve.
As well as DomainOperations, you can define ServiceOperations (using the [ServiceOperation] attribute) and InvokeOperations.
This article might help (although I think it s a bit out of date).