Hello ,
I am working on a project and using wilson ORMapper to communicate with the database. I faced lot of problems as I didn’t find any the proper document about how to work with ORMapper. Then I thought that after learning I would prepare a very brief document to show how to write the method to communicate with the database using ORMapper. Here are some of the method :
Updating a record.
public static User UpdateUser(IContext context, User user)
{
Global.Manager.StartTracking(user, InitialState.Updated);
Global.Manager.PersistChanges(user, PersistDepth.SingleObject);
return user;
}
Adding New Record
public static User CreateUser(IContext context, User user)
{
Global.Manager.StartTracking(user, InitialState.Inserted);
Global.Manager.PersistChanges(user, PersistDepth.SingleObject);
return user;
}
Getting Record by iD.
public static User GetUserByID(IContext context, int userID)
{
OPathQuery
return Global.Manager.GetObject
}
Getting collection Object of record.
public static Collection
{
if (userStatus == Constants.All)
{
OPathQuery
return Global.Manager.GetCollection
}
}
Calling Stored Procedure using Stored Procedure
public static DataSet GetTransferDetails(IContext context, int siteID, int roomID)
{
DataSet dataSet;
SelectProcedure spTransferDetails = new SelectProcedure(null, GetTransferDetails");
spTransferDetails.AddParameter("@siteID", siteID);
spTransferDetails.AddParameter("@departmentID", departmentID); spTransferDetails.AddParameter("@roomID", roomID);
dataSet = Global.Manager.GetDataSet(spTransferDetails);
return dataSet;
}
Executing SQL query in ORMapper
public DataSet GetUserRecordHistory(int userID, string emailID)
{
string sql = String.Format("select UserName,[Time],SiteID,RoleID from User where userID = {0} and emailID = {1} Order By Time DESC", userID, emailID);
return Global.Manager.GetDataSet(sql);
}
Passing Multiple Parameter to the ORMapper query
public Product GetProduct(int manufacturerID, int productCategoryID, int productTypeID,string productName , string length, string diameter, string primaryFeature, string secondaryFeature, string otherFeature)
{
OPathQuery
return Global.Manager.GetObject
}
Using Transaction In ORMAPPER
public static List
{
Product product = null;
BarCode barcode = null;
Transaction transaction = null;
List
try
{
transaction = Global.Manager.BeginTransaction();
foreach (ProductBarcode productBarcode in productbarcodes)
{
product = productBarcode.ProductObject;
barcode = productBarcode.BarcodeObject;
Global.Manager.StartTracking(product, InitialState.Inserted);
transaction.PersistChanges(product, PersistDepth.SingleObject);
barcode.ProductID = product.ID;
Global.Manager.StartTracking(barcode, InitialState.Inserted);
transaction.PersistChanges(barcode, PersistDepth.SingleObject);
savedProducts.Add(product);
transaction.Commit();
return savedProducts;
}
catch { transaction.Rollback(); return null; }
finally { transaction.Dispose(); }
}
Sorting Result using ORMapper
public string sortExp = "Name";
public Collection
{
Collection
OPathQuery
sites = Global.Manager.GetCollection
return sites;
}
Getting single Result/Execute Scalar
public static string GetTimeZoneBySiteID(int siteID)
{
string queryString = string.Format("select timezone from SiteTimeZone tz where s.SiteID = {0}", siteID);
return Global.Manager.ExecuteScalar(queryString);
}
Parameterized query in ORmapper
public static DataSet GetCaseInfo(IContext context, int siteID, DateTime dateTime)
{
DataSet dataSet = null;
string queryString = string.Format(@"select timezone,Time from SiteTimeZone tz where s.SiteID = @siteName and Time=@Time", whereString);
SelectProcedure selectProcedure = new SelectProcedure(null, queryString);
selectProcedure.AddParameter("@SiteID", siteID);
selectProcedure.AddParameter("@Time ", dateTime);
dataSet = Global.Manager.GetDataSet(selectProcedure);
return dataSet;
}
Hope u understood the methods i have written. i dont think these method need any further explanation.
if u have any query , feel free to contact/reply me .
hope to see to again.
-Thanks
Arvind - Ramp
Happy Programming
No comments:
Post a Comment