find a location for property in a new city

Monday, 28 March 2011

How to delete an entity by ID in Entity Framework

It may seem unnatural to delete Entities in Entity Framework. In the days of stored procedures I used to just pass an ID where as now you need to get the entity before deleting it. It seems inefficient - you're basically making two database hits when surely you can do it in one database call, right? Well it is difficult but entirely possible.

Since you do not have the entity you will need you will effectively be updating a detached entity which is a technique in itself. The trick here is that we are making a fake entity that shares the Entity Key (EF version of a primary key) with the one that needs deleting. Then we mark it as deleted and SaveChanges.

public void DeleteByID(object id)
{
    //make fake entity and set the ID to the id passed in
    var car = new Car();
    car.ID = id;

    using (var context = new MyDataContext())
    {
        //add this entity to object set
        context.CreateObjectSet<Car>().Attach(car);
        //mark it as deleted
        context.ObjectStateManager.ChangeObjectState(car, EntityState.Deleted);
        //save changed - effectively saying delete the entity with this ID
        context.SaveChanges();
    }
}

It is worth noting that I am following my own twist on the Repository pattern for data access so I have an "EntityRepository" that manages everything EF related. This is where I will make my generic "DeleteByID" method. My EntityRepository uses generics to specify the type of entities that are dealt with so this has to be completely reusable by any entity set (TEntity) or object context (TContext).

How to Delete by ID in a generic way

public void DeleteByID(object id)
{
    var item = new TEntity();
    var itemType = item.GetType();

    using (var context = new TContext())
    {
        //get the entity container - e.g. MyDataContext - this will have details of all its entities
        var entityContainer = context.MetadataWorkspace.GetEntityContainer(context.DefaultContainerName, DataSpace.CSpace);
        //get the name of the entity set that the type T belongs to - e.g. "Cars"
        var entitySetName = entityContainer.BaseEntitySets.First(b => b.ElementType.Name == itemType.Name).Name;
        //finding the entity key of this entity - e.g. Car.ID
        var primaryKey = context.CreateEntityKey(entitySetName, item).EntityKeyValues[0];
        //using Reflection to get and then set the property that acts as the entity's key
        itemType.GetProperty(primaryKey.Key).SetValue(item, id, null);
        //add this entity to object set
        context.CreateObjectSet<TEntity>().Attach(item);
        //mark it as deleted
        context.ObjectStateManager.ChangeObjectState(item, System.Data.EntityState.Deleted);
        //save changed - effectively saying delete the entity with this ID
        context.SaveChanges();
    }
}

These both translate to the following SQL:
delete from [dbo].[Cars]
where  ([ID] = 123)
And there it is - a reusable delete by ID function with no SELECT!

Follow britishdev on Twitter

96 comments:

  1. Awesome, thanks for the tip!

    ReplyDelete
  2. Thank you for the tip. You have a great blog!

    ReplyDelete
  3. Cool. this helped

    ReplyDelete
  4. ta, this helped.

    ReplyDelete
  5. In exchange for full restitution of the embezzled funds, we agreed not a prosecute. Both the police and district attorney encouraged this course of action.
    http://foxempiretv.com/wp-content/plugins/zingiri-forum/mybb/showthread.php?tid=367687

    ReplyDelete
  6. in exchange for full restitution of the embezzled funds, we agreed not a prosecute. Both the police and district attorney encouraged this course of action.fake id

    ReplyDelete
  7. Queries play key roles to access the target so do not shy to ask questions. Usually, people do not remember the ID name as it is a fake name on ID. So you can ask common questions related to ID. If you get an unsatisfied response then ask the question in a different way to get the response fake id

    ReplyDelete
  8. Motifz Designer Lawn. 1, 2 & 3 Piece Unstitched Premium Embroidered Lawn 2019, Premium embroidered Lawn, Premium lawn, Premium lawn 2019, Motifz, Premium lawn in Pakistan, Summer collection. Shipping worldwide. Stitching option available.

    ReplyDelete
  9. Attractive information on your blog, thank you for taking the time and share with us.
    Die Cut Bookmarks
    Reflective Stickers
    custom stickers uk
    Custom Box Printing

    ReplyDelete
  10. Hello, I want to subscribe for this web site to take most up-to-date updates, thus where can i do it please help out.
    Custom Packaging Boxes
    Custom Printed Boxes Uk
    Logo Stickers

    ReplyDelete
  11. Present your products in the best quality custom printed boxes. Custom boxes make it easy to design and create beautiful custom printed boxes UK. Are you looking for Buy Packaging Boxes with Custom Packaging Boxes at wholesale prices? We offer a huge variety of custom packaging boxes at your doorstep with free shipping.
    Custom Boxes

    ReplyDelete
  12. StickerZone is the fastest and easiest way to buy custom sticker printing. Order in 60 seconds and we’ll turn your designs and illustrations into custom stickers UK, custom labels, window, magnets, buttons and packaging in days. We offer free online proofs, free worldwide shipping and super fast turnaround. We don’t just custom stickers printing. StickerZone provide a wide variety of custom signage for all business types.
    Custom Sticker Printing

    ReplyDelete
  13. Just admiring your work and wondering how you managed this blog so well. It’s so remarkable that I can't afford to not go through this valuable information whenever I surf the internet! Mega Millions Payout

    ReplyDelete
  14. My son would like to play and seek with Miffy

    Ey Yaa

    ReplyDelete
  15. Purchase Real Passports, Drivers License, ID Cards, Residence Permits  
    Buy Registered Passport, Driver's License ( http //: buydriverlicense.com  ) +4915244338254

    We are an agency with over 120 branch offices throughout Europe to the Middle East to Asia, Africa North and South America who have the connections and the ability to issue government registered Identification and travel documents. We issue a range of documents which are all registered in the databases of the authorities in charge of issuing the document for the respective countries. We sell the following; Passports, Driver's License, ID cards, Birth Certificates, Marriage Certificates, Utility bills and so on English language proficiency tests like; IELTS, TOEFL, GRE, GMAT, and many more

    Contact us today to provide you with limitless opportunities. Our contact information is as listed below;

    Email .. ketiakim@yahoo.com  
    Whatsapp ...... +4915244338254
    website .... http //: buydriverlicense.com  
    - Buy Real Registered UK Passport Now

    - Buy Real Registered UK passport online

    - Buy original British passport 24/7 service

    - Purchase Authentic English passport

    - Buy Real original Diplomatic passport Now

    - Buy cheap Registered Diplomatic passport

    - Buy German passport online

    - Buy Real Registered German passport Now

    - Buy Real Registered European passport Today

    - Obtain Real Authentic Passport Online Today

    - Buy Real Registered Italian Passport

    - Buy Real Registered Spanish Passport

    - Buy Real Registered Portuguese Passport

    - Buy Registered Driver's License

    - Buy Driver's License Online

    - Buy Real Registered Driver's License Online

    - Buy Authentic Driver's License; 24/7 service

    - Buy German Driver's License Today

    - Buy Real Registered German Driver's License

    - Buy ID cards in Europe

    - Buy European ID card online

    - Buy Registered Belgian ID card

    - Buy Real Registered Belgian Driver's License

    - Buy driver's license online

    - Buy a Real Driver's License

    - Buy International Driver's License

    - Get Passport, ID Card, Driver's License

    - Buy a Provisional Driver's License

    - Buy Another Driver's License

    - Obtain Driver's License in Florida

    - Buy Driver's License in China

    - Purchase Driver's License in Thailand

    - Buy Driver's License EU

    - Buy Driving License with no exams

    - Buy Legal Driving License for Germany with MPU

     ketiakim@yahoo.comPassport, ID card, Driver's License

    - Buy Malta Passport Now

    - Get Your Citizenship Today at Discount Prices

    - Purchase French Citizenship

    Today

    - Buy Real Registered Australian Passport Online

    - Buy Australian Passport, ID Card, Driver's License

    - Buy Government Database Registered Documents almost

    Email ..... ketiakim@yahoo.com whatsapp....+4915244338254 

    ReplyDelete
  16. Wow! Such an amazing and helpful post this is. I really really love it. It's so good and so awesome. I am just amazed. I hope that you continue to do your work like this in the future also
    Transparent stickers

    ReplyDelete
  17. I always appreciate quality content, Thanks to you for sharing such post.
    Ask Questions Get Answers

    ReplyDelete
  18. code as a starting point for your project ... it definitely handles multiple clients. Regarding the message about the 'Task' class ... the 'Task' class is found in the .Net 4.0 product rapid assemblies and should be already referenced from a .Net 4.0 console ap

    ReplyDelete
  19. OGEN Infosystem provides professional website designing services in delhi, India. We have a great team of experienced developers and designers and we also provide SEO Services.
    SEO Service in Delhi

    ReplyDelete
  20. Free Web Directory is an online catalog of websites arrange by categories. Highly specialized SEO friendly human edited free web directory. Submit your websites free with deeplinks. Free Web Directory

    ReplyDelete
  21. This particular is usually apparently essential and moreover outstanding truth along with for sure fair-minded and moreover admittedly useful My business is looking to find in advance designed for this specific useful stuffs… writing & marketing

    ReplyDelete
  22. Thank you again for all the knowledge you distribute,Good post. I was very interested in the article, it's quite inspiring I should admit. I like visiting you site since I always come across interesting articles like this one.Great Job, I greatly appreciate that.Do Keep sharing! Regards, rijschool geleen

    ReplyDelete
  23. Took me time to read all the comments, but I really enjoyed the article. It proved to be Very helpful to me and I am sure to all the commenters here! It’s always nice when you can not only be informed, but also entertained! sexy ondermode

    ReplyDelete
  24. We are really grateful for your blog post. You will find a lot of approaches after visiting your post. I was exactly searching for. Thanks for such post and please keep it up. Great work. logo firmy

    ReplyDelete
  25. What a fantabulous post this has been. Never seen this kind of useful post. I am grateful to you and expect more number of posts like these. Thank you very much. de mulder venray

    ReplyDelete
  26. Thanks for sharing nice information with us. i like your post and all you share with us is uptodate and quite informative, i would like to bookmark the page so i can come here again to read you, as you have done a wonderful job. architectenbureau eindhoven

    ReplyDelete
  27. This is my first time visit to your blog and I am very interested in the articles that you serve. Provide enough knowledge for me. Thank you for sharing useful and don't forget, keep sharing useful info: blog o grafice

    ReplyDelete
  28. I really appreciate the kind of topics you post here. Thanks for sharing us a great information that is actually helpful. Good day! architectenbureau nijmegen

    ReplyDelete
  29. Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. constructiewerk

    ReplyDelete
  30. Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place.. e liquid millers

    ReplyDelete
  31. Thank you for taking the time to publish this information very useful! glazen schuifwanden

    ReplyDelete
  32. I really appreciate this wonderful post that you have provided for us. I assure this would be beneficial for most of the people. schoonmaakbedrijf eindhoven

    ReplyDelete
  33. custom CBD oil boxes are printed packaging for your products. custom CBD oil packaging is designed with logo and your specification. custom CBD oil packaging boxes are available at wholesale rates. custom CBD oil box packaging is inspiring packaging solution for your product. Get custom printed CBD oil boxes at wholesale rate with free shipping cost all across the United States and Canada.

    ReplyDelete
  34. This comment has been removed by the author.

    ReplyDelete
  35. This comment has been removed by the author.

    ReplyDelete

  36. Buy WEED Online UK

    ONLINE WEED SHOP#1 online dispensary. Shop and buy weed online including all types of cannabis, edibles, vapes, shatter, wax and concentrates and more.

    Get Visit Here for More Information:- buy weed online UK
    We are always open and ready to serve you 24 hours a day and seven days a week. Do not hesitate to call or text us at any given time should you need help.

    ReplyDelete
  37. Very well written information. It will be valuable to everyone who utilizes it, Keep up the good work I will definitely read more posts. Thank you for sharing this with us.
    Database Homework Help
    Programming Assignment Help

    ReplyDelete
  38. I like the valuable info in your articles. I’ll bookmark your blog and check again here regularly. I” ll learn plenty of new stuff right here! Best of luck for the next!
    Custom Boxes with logo

    ReplyDelete
  39. Great Information sharing .. I am very happy to read this article .. thanks for giving us go through info. Fantastic nice. I appreciate this post. and thank you for sharing an amazing article...
    Custom Packaging Boxes

    ReplyDelete
  40. I really thank you for the valuable info on this great subject and look forward to more great posts
    Custom Boxes UK

    ReplyDelete
  41. This comment has been removed by the author.

    ReplyDelete
  42. We supply laboratories worldwide who use Sodium pentobarbital (nembutal) and other barbiturates for strict medical purposes such as an anesthetic agent at the veterinary, for sedation, and some emergency cases. At the appropriate doses, pentobarbital is also used for euthanasia for humans or animals. Nembutal is the most popular pentobarbital for a peaceful ending or painless suicide. Please in the form, specify the purpose of use so that our specialist can recommend the recommended dose.
    Uses of Nembutal
    VISIT WEBSITE : https://hospitableending.com/

    VISIT WEBSITE : https://hospitableending.com/

    ReplyDelete
  43. We supply laboratories worldwide who use Sodium pentobarbital (nembutal) and other barbiturates for strict medical purposes such as an anesthetic agent at the veterinary, for sedation, and some emergency cases. At the appropriate doses, pentobarbital is also used for euthanasia for humans or animals. Nembutal is the most popular pentobarbital for a peaceful ending or painless suicide. Please in the form, specify the purpose of use so that our specialist can recommend the recommended dose.
    Uses of Nembutal
    VISIT WEBSITE : https://hospitableending.com/

    VISIT WEBSITE : https://hospitableending.com/

    ReplyDelete
  44. I am impressed. I don't think I've met anyone who knows as much about this subject as you do. You are truly well informed and very intelligent. You wrote something that people could understand and made the subject intriguing for everyone. Really, great blog you have got here
    Custom Counter Display Boxes
    Custom Christmas Boxes
    Printed on Demand Boxes UKCustom Soap Boxes
    Cannabis Tinctures Packaging
    Custom Vape Packaging
    E-Cigarette Boxes

    ReplyDelete
  45. Incredible posting this is from you. I am really and truly thrilled to read this marvelous post. You've really impressed me today. I hope you'll continue to do so!
    Visit us on for online Customized Submarine 24 Carat Roller Pen.

    ReplyDelete
  46. I like the valuable info you provide in your articles. I will bookmark your blog and check again here frequently. I am quite certain I will learn many new stuffs right here! Good luck for the next!
    factory outlets market of clothing brands in Lahore

    ReplyDelete
  47. Excellent post. I was checking constantly this blog and I am impressed! Very useful info.Thanks for sharing.Keep it up.


    factory outlets market of clothing brands in Lahore

    ReplyDelete
  48. This comment has been removed by the author.

    ReplyDelete
  49. I have read your article; it is very instructive and valuable to me. I admire the valuable information you offer in your articles. Thanks for posting it.
    bakery boxes
    cbd packaging

    ReplyDelete
  50. This comment has been removed by the author.

    ReplyDelete
  51. Contact Me Support:



    STORE_CVV CC DUMPZ DOB SSN FULLZ etc ICQ @Vendor00

    Hello Everyone Welcome To The World Of Carding Hacking.....
    Buy Valid Cvv CC Dumps Track 1/2 CC SSN DOB Track-1/2-FULLZ-Transfer / Western Union Bank-Log-In-PayPal-Transfer-And-Log-In

    Email > vendor00cvv@gmail.com
    Skype> cvv store
    Telegram > +16315092605
    ICQ > @Vendor00

    ReplyDelete
  52. thong may be a sexy choice if a guy was buying a present for his girlfriend. Toptan fantazi iç giyim

    ReplyDelete

  53. Ireally impressed your blog. It is very beneficial for everyone. keep up the good work admin.

    ReplyDelete
  54. learn Quran online male female teacher availableonline Quram academy

    ReplyDelete
  55. This comment has been removed by the author.

    ReplyDelete
  56. Hiya, I am really glad I’ve found this info. Nowadays bloggers publish just about gossip and net stuff and this is actually irritating. FAKE ID MAKER A good website with exciting content, this is what I need. Thanks for making this site, and I’ll be visiting again. Do you do newsletters by email?

    ReplyDelete
  57. I just had to show my appreciation for the writer's point of view on this subject by leaving a comment. Thank you for writing such top-notch content for your readers. Thank you so much. CBD Oil Boxes

    ReplyDelete
  58. tsplus
    tsplus software are used to share the data remotly.

    ReplyDelete
  59. Hi, You are doing Great I saw your Post I have Offer for all of you lip-balm-boxes
    We are offering incredibly designed Custom Lip Balm Boxes with free shipping services. We give wholesale discounts on these amazing sturdy boxes perfect for shipments and order Custom Boxes USA from all over the world.
    lip-balm-boxes
    cigarette-boxes
    Custom Boxes USA

    ReplyDelete
  60. I will recommend this page to my fellow brothers, it really has good and helpful information. Thanks a lot https://ganjamedsuk.com

    ReplyDelete
  61. Do your grocery at Al-Fatah, Pakistan's best and largest grocery online in Pakistan website. Shop from a wide range of grocery including oil and ghee, tea and coffee, dry fruits and seeds, dairy and fresh bakery items, packaged foods, snacks and beverages, baby care, household essentials, fruits and vegetables and many more.

    ReplyDelete
  62. http://legitweeddispensary.com/

    ReplyDelete
  63. Very useful information on how to get real pounds of weed online today for free

    ReplyDelete
  64. Very useful information on how to get real legit weed dispensary today for free

    ReplyDelete
  65. One of the biggest medical benefits of cannabis is its link to fighting cancer. There is a good amount of evidence that shows cannabinoids can help fight cancer or at least certain types of it.
    http://ukmarijuanaclinic.com

    ReplyDelete
  66. Buy digital microwave ovens online from Al-Fatah at best prices. Get free shipping

    ReplyDelete
  67. This comment has been removed by the author.

    ReplyDelete
  68. Your content was awesome. You wrote very well. keep it up we are always here to support you.
    Ignitto is a good place to start. If you're about to make an online purchase, we take the best products in tens of thousands of categories to provide you with reliable purchasing advice. We review various sorts of products, including
    Best laptops Under 700
    Best laptop Desks 2021
    Best Gaming Tablets Review
    Best Alexa Compatible Devices in 2021

    ReplyDelete
  69. Do you need Quick Loan to settle your bills and startup
    business? contact us now with your details to get a good
    Loan at a low rate of 2% per Annual
    Do you need Personal Finance?
    Business Cash Finance?
    Unsecured Finance
    Fast and Simple Finance?
    Quick Application Process?
    Finance. Services Rendered include,
    *Debt Consolidation Finance
    *Business Finance Services
    *Personal Finance services Help
    contact us for more information on how to get started:
    (Whats App) number:+919394133968
    please contact email id : patialalegitimate515@gmail.com
    Mr Sorina Jeffery

    ReplyDelete
  70. Do you need Quick Loan to settle your bills and startup
    business? contact us now with your details to get a good
    Loan at a low rate of 2% per Annual
    Do you need Personal Finance?
    Business Cash Finance?
    Unsecured Finance
    Fast and Simple Finance?
    Quick Application Process?
    Finance. Services Rendered include,
    *Debt Consolidation Finance
    *Business Finance Services
    *Personal Finance services Help
    contact us for more information on how to get started:
    (Whats App) number:+919394133968
    please contact email id : patialalegitimate515@gmail.com
    Mr Sorina Jeffery

    ReplyDelete
  71. I'm very Glad to visit your informational Post.Custom Lip Balm Display Boxes Packaging boxes are really necessary for any kind of product. If you want to pack your products in a stylish way then use these Custom Lip Balm Display Boxes with customized designs, styles, colors, shapes, and stocks. We are also offering error-free design and free shipping services all over the USA.

    ReplyDelete
  72. .com Weed shop, You can purchase marijuana flower buds Today. The marijuana industry has always revolved around deals, even when it was only in the black market realm strain, Biscotti, LA pack boys, and many orders. dissertation writing services
    literature review, and methodology to a conclusion. Best dissertation writing service in the UK because PhD writers work with the heart and soul.

    ReplyDelete
  73. Such a Great Post! I have read your blog such a piece of great information. I really like your article. Gives a lot of information to the readers. keep it up and share more information.
    custom sticker printing

    ReplyDelete
  74. http://cannabismart.uk/ Marijuana online shop United Kingdom cannabismart.uk 
    http://cannabismart.uk/
We remain the number marijuana online shop (dispensary) guarantee safety, security and privacy with each and every order and client for half a decade. http://cannabismart.uk/
    Buying weed online made very easy with us, high THC & CBD strains and we only get the best selected top shelf buds, quality remains our standard. http://cannabismart.uk/
    We have a wide selection of cannabis flowers buds, concentrates, vapes, cartridges , edibles, cannabis oil and quality hash.

    Buying cannabis online: http://cannabismart.uk/
    
Buy weed online UK http://cannabismart.uk/
    
Buy cannabis online united kingdom http://cannabismart.uk/

    YES you can buy weed online in UK, http://cannabismart.uk/
    
Although it is possible to buy weed online through dark web and using cryptocurrency there is our Clearnet web-site for THC and CBD cannabis shop. 
    http://cannabismart.uk/  http://cannabismart.uk/  http://cannabismart.uk/


    buy weed, buy 420 online, buy kush, Buy marijuana online UK, Buy weed online London, buy 420 Manchester, buy weed Liverpool, UK - United Kingdom - England - Scotland - Ireland - Wales - Green, 420, Dank, grade, grass, trees, flowers, cheddar, smoke, bags, skunk, wacky backy, peng, piff, buds, kush, gwarn, haze, lethal grizzle, buy weed, mary jane
https://cannabismart.uk/, cannabis, hash, plants, seeds http://cannabismart.uk/

    Weed for sale UK http://cannabismart.uk/
    
Weed for sale UK http://cannabismart.uk/

    Weed cutter boat for sale UK http://cannabismart.uk/

    order 420 http://cannabismart.uk/

    Weed grinders for sale UK http://cannabismart.uk/
    
Buy Cannabis UK http://cannabismart.uk/
Cannabis & Weed For Sale UK http://cannabismart.uk/

    Order Weed http://cannabismart.uk/

    Cheap weed for sale http://cannabismart.uk/

    Real weed for sale online http://cannabismart.uk/

    Weed for sale on craigslist http://cannabismart.uk/

    Weed in the UK http://cannabismart.uk/

    Buy weed UK http://cannabismart.uk/

    Buy weed online UK http://cannabismart.uk/

    Medical marijuana UK http://cannabismart.uk/
    
Buy weed Online in Europe http://cannabismart.uk/

    buy edibles online http://cannabismart.uk/

    ReplyDelete
  75. Buy mens gym trousers online from Dshred at easy prices delivered at your doorstep. Get free shipping

    ReplyDelete
  76. This comment has been removed by the author.

    ReplyDelete
  77. This game played in Kolkata is the biggest game recognized by the government. kolkata ff

    ReplyDelete
  78. A debt of gratitude is in order for offering this quality data to us. I truly delighted in perusing. Will without a doubt going to impart this URL to my companions.  casualstyle

    ReplyDelete
  79. Thanks for magnificent posting! I genuinely delighted in understanding it, you are an extraordinary author. I will make sure to bookmark your blog and will return what’s to come.
    Try to check my webpage id card printing

    ReplyDelete
  80. I feel that is among the ton crucial data for me. What's more, I'm cheerful concentrating on your article. Anyway need to analysis on scarcely any ordinary things, the site taste is extraordinary, the articles is as a general rule great: D. Great cycle, good wishes.
    Custom CBD Tincture Boxes

    ReplyDelete
  81. your content is very inspiring and appriciating I really like it please visit my site for Satta King Result also check Satta king 24X7 and also check sattaking and for quick result check my site Satta matka and for super fast result check Satta king

    ReplyDelete

  82. Your Artical is a very beneficial.I like this artical.
    Andrew Polwarth

    ReplyDelete
  83. i am Like your blog is a greet info this artical
    Andrew Polwarth

    ReplyDelete
  84. Thank you for the good writeup. It in fact was a amusement account it.

    Look advanced to far added agreeable from you! By the way, how could we communicate?
    Jeff Van Beaver

    ReplyDelete
  85. Great blog here! Additionally your web site a lot up very fast!

    What web host are you the usage of? Can I am getting your *****ociate link to your host?

    I wish my site loaded up as quickly as yours lol Acts 1:8 Foundation

    ReplyDelete
  86. sharbat faulad, an herbal source of iron, is considered the best tonic for overall physical maintenance. It contains a sizable amount of iron, which improves the body’s efficiency. It betters the function of the liver and stomach.

    ReplyDelete
  87. This comment has been removed by the author.

    ReplyDelete
  88. Another brilliant post! Your articles serve as a guiding light in the vast landscape of information available on a variety of topics.

    Black Marquina Marble in Al Majaz Sharjah

    ReplyDelete