static void Main(string[] args) { //Map Address to User var userAddressMap = new OneToOneMapping<User, Address>(address => address.Id, user => user.AddressId, (user, address) => user.Address = address); //Map Address to Employer & Employer to User var employerAddressMap = new OneToOneMapping<Employer, Address>(address => address.Id, employer => employer.AddressId, (employer, address) => employer.Address = address); var userEmployerMap = new OneToOneMapping<User, Employer>(employer => employer.Id, user => user.EmployerId, (user, employer) => user.Employer = employer); userEmployerMap.AddMapping(employerAddressMap); //Map Car to user var userCarMap = new ManyToManyMapping<User, Car, UserCar>(car => car.Id, userCar => userCar.CarId, userCar => userCar.UserId, (user, cars) => { foreach (var car in cars) { user.Cars.Add(car); car.Users.Add(user); } }); //User Mapping var userMap = new ParentMapping<User>(user => user.Id); userMap.AddMapping(userAddressMap); userMap.AddMapping(userEmployerMap); userMap.AddMapping(userCarMap); //var dataBroker = new SqlDataBroker(@"Server=(localdb)\ProjectsV12;Database=DemoDatabase;Integrated security=True", new DapperGridReaderFactory()); var gridReaderFactory = new SqlGridReaderFactory(); gridReaderFactory.AddEntityFactory(new AddressFactory()); gridReaderFactory.AddEntityFactory(new CarFactory()); gridReaderFactory.AddEntityFactory(new EmployerFactory()); gridReaderFactory.AddEntityFactory(new UserFactory()); gridReaderFactory.AddEntityFactory(new UserCarFactory()); var dataBroker = new SqlDataBroker(@"Server=(localdb)\ProjectsV12;Database=DemoDatabase;Integrated security=True", gridReaderFactory); dataBroker.AddMapping(userMap); var totalTime = 0L; for (int i = 0; i < 100; i++) { Stopwatch watch = new Stopwatch(); watch.Start(); //var parameterList = new List<IDbParameter>(); //parameterList.Add(new DbParameter("BirthDate", DateTime.Parse("06-01-1975"), DbType.Date)); var users = dataBroker.ExecuteStoredProcedure<User>("dbo.ReadUser"); watch.Stop(); totalTime += watch.ElapsedMilliseconds; } var test = totalTime; }
public void Initialize() { MockSqlConnectionFactory = new Mock<IDbConnectionFactory>(); MockParentMapping = new Mock<IParentMapping<ParentItem>>(); MockGridReaderFactory = new Mock<IGridReaderFactory>(); SqlDataBroker = new SqlDataBroker("FakeConnectionString", MockSqlConnectionFactory.Object, MockGridReaderFactory.Object); }
public void Constructor_PassConnectionStringAndGridReaderFactory_DefaultConnectionFactoryIsCreated() { //Act var result = new SqlDataBroker("FakeString", MockGridReaderFactory.Object); var privateObject = new PrivateObject(result); var connectionFactory = (IDbConnectionFactory)privateObject.GetField("_sqlConnectionFactory"); //Assert Assert.IsNotNull(connectionFactory); }