Professional Documents
Culture Documents
ODATA
Creating WCF Data Service
Consuming WCF Data Service
WCF Data Service, Project Astoria, OData and ADO.Net Data Service are same
thing.
What is ODATA?
ODATA can be implemented through any platform supports, HTTP, XML or JSON.
ODATA can expose data/information from relational database, File systems, Web
sites, services etc.
WCF Data service could be consumed by any type of client like Windows,
SilverLight, Web, AJAX and console.
Let us say, we have a table called Student of below structure below in our database
3. Since we have table in data base. so we are going to choose option , select from
database.
4. Either choose the data base from drop down or create a new data connection.
You can give the data base server name and press refresh. After pressing Refresh,
you can choose the data base from the drop down. After selecting the data base
click on Test Connection to test connection established successfully or not?
5. Select tables, views and stored procedure from data base you want to make as
the part of your data model. Since we are having only one table so we are
selecting one table.
If you want you can change name of the data model. By default it is name of the
data base appended by the term model. Click on Finish button to complete and
create the data model.
6. Now we can see that StudentDataModel.edmx has been created in the designer.
Since there is only one table, so there is only one table model at design surface.
Now we have created the data model which can be exposed as WCF Data Service.
Now you can see in solution explorer, you have StudentModel.edmx and
StdentModel.Designer.cs files.
3. After adding the WCF Data Service, we can see a service file with extension .svc
has been added to the solution explorer. When we click on .svc.cs file, we can see
the code generated for us.
Very first we need to put data source name. To do so uncomment the first
commented line and put the data source name. In our case name of the model,
which we created in 2nd step is the data source. Our data source name is
StudentDBEntities
Now we need to set access rules for entity or entity set. Since we have only one
table, so either we can give name of the table explicitly or if we want to set the
same access rule for all the table in the data model or data source we could put
*.
So we are setting the access rule that, on the entity in data source perform all the
operations.
Step 4: Run the WCF Data Service
Just press F5 to run the WCF Data Service. Data Service will be hosted in the default
ASP.Net server called Cassini.
On running you can see, one table is listed. That table is Student
MetaData
One feature of WCF data service is that, they provide operation to retrieve
Metadata about the service and offer of the service.
This is very useful in determining structure before requesting them.
We can perform various queries in the browser itself using the URI query options.
Options
Options Descriptions
expand Request set of related entities to be retrieved.
orderby Indicates the sequence entity to be retrieved
skip
top
filter
Operators
Options
Descriptions
eq
Equal
ne
Not Equal
gt
Greater Than
ge
lt
Less than
le
and
Logical AND
or
Logical OR
not
Logical NOT
Math Operators
Operators
Descriptions
add
add
sub
Subtract
mul
multiply
div
Division
mod
remainder
Various queries
1. Fetch all the records from the table Student
URI: http://localhost:29409/WcfDataService1.svc/Students
Result
Descriptions
All
AllRead
AllWrite
None
No access is permitted
ReadMultiple
ReadSingle
WriteAppend
WriteDelete
WriteMerge
WriteReplace
As we discussed above we can set access rule for a particular entity or whole entity set in
data source.
config.SetEntitySetAccessRule("*", EntitySetRights.All);
This will permit all right access on all entity set.
config.SetEntitySetAccessRule("Students", EntitySetRights.AllWrite);
This will permit all write access on Student entity set.
Creating a client to consume WCF Data Service
Step 1
Add a new project in the same solution of type console application.
Step 2
Add the service reference of WCF Data Service. To add right click on the console project
and add a service reference. Since WCF Data Service and client project in the same
solution , click on Discover to discover the service in the solution.
Step 3
Add namespaces
Step 4
Need to create instance of DataContext and StudentDBEntities. These two classes take
as parameter in their constructor. Parameter is base URI of the WCF Data Service.